<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:cpix="http://www.cumberlandpharma.com/20221231"
  xmlns:dei="http://xbrl.sec.gov/dei/2022"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2022"
  xmlns:us-gaap="http://fasb.org/us-gaap/2022"
  xmlns:utr="http://www.xbrl.org/2009/utr"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="cpix-20221231.xsd" xlink:type="simple"/>
    <context id="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i0cf98cdc48c644138ca1c6dedc85be6e_I20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <context id="i40f46dea598c4f3cba52391f5ebaf18b_I20230307">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2023-03-07</instant>
        </period>
    </context>
    <context id="ie7de9e3a8f694f75963d43839bcbe61c_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ic0531c6598004c5d9158b8763683f643_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="idf6dac19d6f34192bbf220dba001eef3_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i82deea75887548fe9dd05c788a9a95d9_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ProductMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i78d55d038f4f4a95b6d5aa9d8870f9f3_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ManufacturedProductOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i492284a80be94550bc059ef2e65088e9_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ManufacturedProductOtherMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i6b1f58f544414d679bba8a83be98bb54_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i963f0ace48ae4299a000f7fd5b7c18c5_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ia40cff38220f4a42a215676712cd7975_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i4f553aa99c0e4216aa251a6245b1cab1_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ia770bc31d52a493aa78146feba302866_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ic4d8da0743ab4c0488940b1685dbba30_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i335f36ffc1e6419c9c6d44aa4dfbab4e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i34f8ac4bf33e4693be58ae3e7731aca1_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="id569c4eed8f24390a0083034cd6006fd_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ie04970d0133c449fb025dee41a90d071_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="iffb757a4c3914eb9b95796ad9e20eacc_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i1705f3f062cc44839738fe486e114ad6_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i72718240c04b4ec2ba4b82ad98b68277_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i3cb948d137eb4bae9cb3425ba6c840db_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ibdae3b5e1dd2405b904488b32eb4db3b_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i4d4b30bb244846a8ba4078cdae06919f_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:NoncontrollingInterestMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ib9062e0d132343aaa03943a47c77e779_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:HarbinGloriaPharmaceuticalsCoMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="dei:LegalEntityAxis">cpix:CumberlandEmergingTechnologiesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ifbd696f587e24eb997ec609f8ce82517_I20190430">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:HongKongWinHealthPharmaGroupCoLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-04-30</instant>
        </period>
    </context>
    <context id="i7002a7773f304b60a1fb957d9bf22167_D20190401-20190430">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:HongKongWinHealthPharmaGroupCoLimitedMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-01</startDate>
            <endDate>2019-04-30</endDate>
        </period>
    </context>
    <context id="id417cd67920147a1928abf32d83fb11f_D20190401-20190430">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:GloriaPharmaceuticalsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2019-04-01</startDate>
            <endDate>2019-04-30</endDate>
        </period>
    </context>
    <context id="i6ed29773e4754bd1a441c809e5231f15_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:OwnershipAxis">cpix:CumberlandEmergingTechnologiesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i6c780a0c3e87440c8eb1928bb0ce5f86_D20180101-20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-12-31</endDate>
        </period>
    </context>
    <context id="i920d5ee9a6184682bc7bf8c05423756f_D20190101-20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2019-01-01</startDate>
            <endDate>2019-12-31</endDate>
        </period>
    </context>
    <context id="i478ad941e6444190835fbd70e6a0fda2_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ia21564bd7ce142dcadc0c24df7ea1958_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:NonUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ie03b356b24224df284680048170d1d18_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:NonUsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i0ba80f17d75f466d9b1472a3319fada7_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cpix:AccountsReceivableAllowancesByComponentAxis">cpix:ChargebacksCashDiscountsAndDamagedGoodsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i516902d591354e20a3baac1f1747a355_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cpix:AccountsReceivableAllowancesByComponentAxis">cpix:ChargebacksCashDiscountsAndDamagedGoodsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i7cfbfa92c9f74d5d8ecb902cacdb2307_D20180101-20180131">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2018-01-01</startDate>
            <endDate>2018-01-31</endDate>
        </period>
    </context>
    <context id="if8074777558e4350be02e8d826a67f22_D20211227-20211227">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2021-12-27</startDate>
            <endDate>2021-12-27</endDate>
        </period>
    </context>
    <context id="icc21cd41019b4937823097e3a64ff8a3_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cpix:ProductRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i3025fb68648c4df5b3dc39a998179c33_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:LicensingAgreementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i4c75d11680284d93969ed668e797eebc_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i3aa1891de07e463882de10e63f32527d_I20200831">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:WinHealthInvestmentSingaporeLtdMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-08-31</instant>
        </period>
    </context>
    <context id="i021bbc1b476b4fbe8c8498630b3444b9_D20161101-20161130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:MethotrexateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2016-11-01</startDate>
            <endDate>2016-11-30</endDate>
        </period>
    </context>
    <context id="i9301d1c169904a1d9355a5854c6f29e3_D20161101-20161130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:MethotrexateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2016-11-01</startDate>
            <endDate>2016-11-30</endDate>
        </period>
    </context>
    <context id="i49ea797c011744d19c463a47c6cbbd46_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:MethotrexateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i9b29c34edaba455b8ebdd48b45de02d6_I20211031">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2021-10-31</instant>
        </period>
    </context>
    <context id="id9d899e86c97433d9a3fa65fce7361e2_I20220712">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:NordicGroupBVMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">us-gaap:CollaborativeArrangementTransactionWithPartyToCollaborativeArrangementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-12</instant>
        </period>
    </context>
    <context id="if7fa09f75a3b48cea5b2fb00b556fbe9_I20220712">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:NordicGroupBVMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">us-gaap:CollaborativeArrangementTransactionWithPartyToCollaborativeArrangementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-07-12</instant>
        </period>
    </context>
    <context id="iec5e58bac724452b876b92a905e3ca14_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:MethotrexateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i133c71a4398845698d7d7701abc49b01_D20181101-20181130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:VIBATIVMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-11-01</startDate>
            <endDate>2018-11-30</endDate>
        </period>
    </context>
    <context id="i8e22ba92c2194833a0319101083d1275_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:VIBATIVMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i6f2090fcc89c46fc8c515cd09cc5ffae_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:VIBATIVMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ib36b29930b41472aaa5de35a1e59cb95_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:VIBATIVMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i924046424f4a4ad5a7dce8e0bfe36d8b_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:VIBATIVMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="if5896e7f52a047b09f7db59a5bf0b6a5_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:VIBATIVMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ieb014f15e52c4aa7b4a00972e8c2037e_I20220103">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:KyowaKirinMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">us-gaap:CollaborativeArrangementTransactionWithPartyToCollaborativeArrangementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-03</instant>
        </period>
    </context>
    <context id="i44944cd121824f49afdb95c8a1b230c0_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:KyowaKirinMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">us-gaap:CollaborativeArrangementTransactionWithPartyToCollaborativeArrangementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i4e74c81ece854dfcb8d7c8c3bc0a2f03_I20220103">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:KyowaKirinMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">us-gaap:CollaborativeArrangementTransactionWithPartyToCollaborativeArrangementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-03</instant>
        </period>
    </context>
    <context id="i155bdf692bf44e60a73258a7452baa96_I20220103">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:SancusoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-03</instant>
        </period>
    </context>
    <context id="if8f59b1cd25d434eb648fc77c3dea5b1_D20220103-20220103">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:SancusoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-03</startDate>
            <endDate>2022-01-03</endDate>
        </period>
    </context>
    <context id="i81f3f0b045ff491da276024b81457433_D20220103-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:SancusoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-03</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="if92534bff0f1467fbb22f084f101995f_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:SancusoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i469400cc5d084372975262bfe96ab0fc_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:SancusoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i4696b3ec55c74a54b9b5653d2452aca1_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:KristaloseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="if32dce83e48c4a7b91a0d4e335b66480_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:KristaloseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i98dc7a56a6ee4bc5ace7b118374a0de5_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:SancusoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ifaddae84fd5b4b89a3139c9ac38b23c6_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:SancusoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i9f3d9b8292154fa0b504704f80f2e116_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:ProductVibativMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="icf29047eb0424eef806c96c842debe22_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:ProductVibativMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i3e3b77ebc51845fd880355bb1563cc5f_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:CaldolorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i18b3e901750344aba9b2ac8dc3d8398e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:CaldolorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i37ab018ed1464e58a2e6f54a577ad077_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:AcetadoteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ia8fd80adb04d4f22a287d4e54e9550dc_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:AcetadoteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="iaa10efc46e9e461386aa80220fb7a4ce_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:OmeclamoxPakMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ibe04d4939aef4eb2ae85d6d4c47c642d_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:OmeclamoxPakMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="if9859c4aed134140b347fcfab3e9f9f9_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:VaprisolMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="id6e9d7a75c774347844d3abe0e6a3d75_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:VaprisolMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i82ef6903bdd04aa7be5bf21326a39725_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:RediTrexMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="iee6aca6f1f4640128e84638b21a73ac8_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:RediTrexMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="if6d9484ddbcb49fda1792dcd0ca0e89c_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:GrantMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cpix:CollaborativeArrangementFederalSmallBusinessGrantProgramsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i16b9bb498b204e8a9f03c0c2fdc55984_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:GrantMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">cpix:CollaborativeArrangementFederalSmallBusinessGrantProgramsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="if13d0a3b9ba3470186981ffcd4cd386c_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">cpix:VIBATIVMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">cpix:WorkInProcessMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="icf903ddd161947ba816eea446f55a857_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">cpix:IfetrobanClinicalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i90d887a51969486c9881a5eac45b76a6_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PublicUtilitiesInventoryAxis">cpix:IfetrobanClinicalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i0b7caf11e1a24164b014dcb9cc1efa95_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ib30352d285114277aebd23aebdefc31a_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="iebc3383fa2574ae1802474eb1d124ef3_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ic80dac19a3234cf59481be62a47b00c2_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ComputerEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ib15d3092260845f9b57d3c442a6f6c72_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:OfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i8f1325d766c543488d6cdd933169b69f_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:OfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i16957755b21643ba9ebe843a90bb7625_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:OfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="id7d4d8a23fe54b748a284173ad96a122_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:OfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i7da33aa95f3a43abb0a94e5e28dc81d1_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i66cf95bb11704c8fa28b1cc8873b54c6_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i440984280e14489e94de83929fda92ea_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i0f49ad0b1cb54a7283fcda38b5eb92cd_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ie029fb915f8742fabfa273ab1ade8a96_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="iec1323af37504488a64c07cf8beb4baf_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i8a40ef618bc943579e158b9494ffce7d_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i57964ce83e4b45c18274c46575c33640_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i69aeb359c79e41b78bca28b92da3cc0b_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cpix:ProductAndLicenseRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i463edf77a5cf4cd68d974b7c5d2166e3_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">cpix:ProductAndLicenseRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i8d06b1820bd54620a60f0c01d91fbf4d_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="id3983a09554e4ca699dbcaf2db560e0f_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i574bc1e7d0d2481ea5ad466e8f534855_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ic223906cd81348c4bac59dcace59f34e_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TrademarksMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="idb47557bdc1b4a7091a589c3dd4e833b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:PatentsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i6e9d77deb33f4194ba7a35755cec59a1_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cpix:FifthAmendmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">cpix:PinnacleBankMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="iac3baa3852034481ab2a2c089e20758c_I20220929">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cpix:NinthAmemdmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-09-29</instant>
        </period>
    </context>
    <context id="i7f310f91304f4cc89cb705d8722a8d08_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cpix:SecondAmendmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">cpix:PinnacleBankMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i28084a381e4f4f1491853ea7f60c1025_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cpix:SecondAmendmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">cpix:PinnacleBankMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i4808a45eee974fbfbe990af48bc945ad_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">cpix:PinnacleBankMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i061a02db1e2b4e1792f9dfd792d617e4_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">cpix:PinnacleBankMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ic015a17daf5344f9a4de26b8e32f3873_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:InterestRateFloorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i755231ed00d14acf800c9c3404c31e20_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">cpix:PinnacleBankMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ib8724ef42665454e9a5d3f598e52ab38_D20170731-20170731">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">cpix:PinnacleBankMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-07-31</startDate>
            <endDate>2017-07-31</endDate>
        </period>
    </context>
    <context id="ic5e93a72679646699ff0eec55311987d_D20200420-20200420">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cpix:PaymentProtectionProgramMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">cpix:PinnacleBankMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-04-20</startDate>
            <endDate>2020-04-20</endDate>
        </period>
    </context>
    <context id="icf6a2ed9c9c1455893589f101ba5b4cc_I20200420">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cpix:PaymentProtectionProgramMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">cpix:PinnacleBankMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-04-20</instant>
        </period>
    </context>
    <context id="ib78383e8396e49768661e5b1015fc86b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">cpix:PaymentProtectionProgramMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">cpix:PinnacleBankMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="idd6efbaba58c4153b8a8b424c820d032_D20090809-20090810">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2009-08-09</startDate>
            <endDate>2009-08-10</endDate>
        </period>
    </context>
    <context id="i1061cd07c59c4fc190c499065ffea5e3_I20100531">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">cpix:ShareRepurchaseProgramAuthorizedIn2010Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2010-05-31</instant>
        </period>
    </context>
    <context id="i3c8e554b334e4bf692425f706564fc4d_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cpix:SharesRepurchaseActivityTypeAxis">cpix:SharesRepurchaseAllExceptSettlementOfTaxLiabilitiesRelatedToExerciseOfStockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ia90dbbcb1d5e494382b065f737613908_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="cpix:SharesRepurchaseActivityTypeAxis">cpix:SharesRepurchaseAllExceptSettlementOfTaxLiabilitiesRelatedToExerciseOfStockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i0027eb6bc44b4567a5351c10399f22e7_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="cpix:ExpirationTimePeriodAxis">cpix:ExpirationTermOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ifea0d070c6124183897a66bb2df920d4_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="cpix:ExpirationTimePeriodAxis">cpix:ExpirationTermOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i30e86908009643eebb68ac0e3a1ae95e_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="cpix:ExpirationTimePeriodAxis">cpix:ExpirationTermTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i99d9d087686e4acaa131dcf7f56b02b5_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="cpix:ExpirationTimePeriodAxis">cpix:ExpirationTermTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i66d5038d3ea5413287c0c60e6f8d6e13_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="cpix:ExpirationTimePeriodAxis">cpix:IndefiniteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ic8ffa57a973c45d89dc9e53e23854361_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="cpix:ExpirationTimePeriodAxis">cpix:IndefiniteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="if08c5ee420b248ac902a128ef7d90e7a_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:InternalRevenueServiceIRSMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="id4ecd0e4253e46d69b1840d128d714e3_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i81a18b4c882d437cb25a611496aa56a5_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">cpix:FederalAndStateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i54dfc16f99534c19b2867a069f58d483_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">cpix:FederalAndStateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="cpix:ExpirationTimePeriodAxis">cpix:ExpirationTermOneMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i795293f449e54a6eb5e7aa63c13b396d_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">cpix:FederalAndStateMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="cpix:ExpirationTimePeriodAxis">cpix:ExpirationTermTwoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ibe55a7e9ab974665911b58f2cf2ab1d1_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cpix:LongTermIncentiveCompensationPlan2007Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i8296dfa01cf5426fa8af917b505e162d_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">cpix:DirectorsIncentivePlan2007Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i13b23c2311f046879e4fd6dafe94a991_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">cpix:NonprincipalOwnerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i2d9c25b92eff4d35973caf424807a5d5_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">cpix:NonprincipalOwnerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i070ea86904974ad18860cbc73c3202cc_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">us-gaap:PrincipalOwnerMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i955de8aa181944039f7145e41a74c991_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">srt:DirectorMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i09447f6af13b4f27a9f24d32a75cda9b_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">cpix:EmployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i7684a832b0134542abe7faecbea0573e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">cpix:EmployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i66c58bd8eaaf40cd8f6a0c93cdb60c2a_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">cpix:NonemployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i8d9566f966de4bd4968bb2d10e0af05b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">cpix:NonemployeeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i6e34c07ebd764d17a96ec1d0f497c811_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">cpix:EmployeeNonemployeeandFoundationContributionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i89c60f8924f748d98ade2ba26f585e11_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:TitleOfIndividualAxis">cpix:EmployeeNonemployeeandFoundationContributionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i214555a81d9942d3a95516724918bd8d_I20181231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2018-12-31</instant>
        </period>
    </context>
    <context id="i9b6757568b9e49e9966bfb7da5c81e59_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i91bab75ee1804a1097fbe90085dc4f12_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cpix:RestrictedIncentiveStockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i96a4e765721c42ea917004337d0b3ad7_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cpix:RestrictedIncentiveStockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i3b943054825b4193b3cf6fbcea5877d1_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cpix:RestrictedIncentiveStockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ia1c248297d03494eb04a4bad485b30a6_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cpix:RestrictedIncentiveStockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="idfea5a17cdad49b5b643bd1bf2db9833_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cpix:RestrictedIncentiveStockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i1b65c4b8b6aa447481044537155a6d9a_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="if838a7aa53664232926aca1c69b23238_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ib2a4df839364457ca572567fd0e125dc_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i77bbb8c546584364b444f9dda7535ac1_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i430e1a4cd7514fe59de28ed3a49bbab5_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i2feebee0d9d3471aa9e1f9a777659632_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i872072012a784d598051e80fd8fb06ed_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i554be9ce2c1b41b4a99da09551040eaf_I20211115">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">srt:OfficeBuildingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-11-15</instant>
        </period>
    </context>
    <context id="ic57bcfd058014d5d98c77360f419b471_I20211115">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LeaseContractualTermAxis">cpix:BroadwestLeaseFiveYearRenewalOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">srt:OfficeBuildingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-11-15</instant>
        </period>
    </context>
    <context id="ib2fa7c2f4e86401a88e3022cb2d1309b_I20211115">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2021-11-15</instant>
        </period>
    </context>
    <context id="i5a4d2edd7a324a55a81eb502f58e0069_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">srt:OfficeBuildingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i48b2fbaeed6a477c8536c9109ab9bde5_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:A1600WestEndAvenuePartnersLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="iffad826a3e6c41bd89cf0a3c062b03ad_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:CETMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i8047e420d87647ca865218062adc1b3c_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cpix:CustomerOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cpix:SalesRevenueGoodsGrossMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ibb1ed446076641e2b06e8f65764e9641_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cpix:CustomerOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cpix:SalesRevenueGoodsGrossMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ie513e297486b4dc29fca145454075e01_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cpix:CustomerTwoMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cpix:SalesRevenueGoodsGrossMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i0510690b6b854b9d8843a2b97df3ce27_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cpix:CustomerTwoMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cpix:SalesRevenueGoodsGrossMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i40f47c6c3c2345c982dcd1e267fd6145_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cpix:CustomerThreeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cpix:SalesRevenueGoodsGrossMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="iaff5c56f78a34c10b47d66d78992346f_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cpix:CustomerThreeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">cpix:SalesRevenueGoodsGrossMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i42772db945f14e0d885bd05151e93291_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cpix:Customer12And3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i3990e4402eb64fb980a6bad3eb7430b8_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">cpix:Customer12And3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ic40eb7705a474e4fa7d98cfa3a5cb554_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ie088610f3d64485c98806a39268009ee_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i03b6a63983b64d8bbf3a1a5e92a62c3b_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:KyowaKirinMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">us-gaap:CollaborativeArrangementTransactionWithPartyToCollaborativeArrangementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i1e7165d6a14540d69539b738e13cdf8d_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:KyowaKirinMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">us-gaap:CollaborativeArrangementTransactionWithPartyToCollaborativeArrangementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i284259e69f3e4e4e84c466d1e02a1e56_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:KyowaKirinMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">us-gaap:CollaborativeArrangementTransactionWithPartyToCollaborativeArrangementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ia952b89d554e4c89bf3b5882567c2d5f_I20220202">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:MelintaTherapeuticsLLCAndTargantaTherapeuticsCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">us-gaap:CollaborativeArrangementTransactionWithPartyToCollaborativeArrangementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="cpix:CollaborativeArrangementMilestonePaymentThresholdAxis">cpix:Within30DaysOfFirstSNDAFilingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-02-02</instant>
        </period>
    </context>
    <context id="i49eca3268edc4ad8b4e63d2e71cfa018_I20220202">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:MelintaTherapeuticsLLCAndTargantaTherapeuticsCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">us-gaap:CollaborativeArrangementTransactionWithPartyToCollaborativeArrangementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="cpix:CollaborativeArrangementMilestonePaymentThresholdAxis">cpix:FollowingApprovalOfFirstSNDAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-02-02</instant>
        </period>
    </context>
    <context id="i1f878acd95a045fd934d5052dde987c6_I20221107">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:MelintaTherapeuticsLLCAndTargantaTherapeuticsCorporationMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">us-gaap:CollaborativeArrangementTransactionWithPartyToCollaborativeArrangementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-11-07</instant>
        </period>
    </context>
    <context id="i64c3421e0d2e4d6594a1310b2092eef6_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i7f2fe16a8bbd495ea60a640bf9253bff_D20220401-20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2022-04-01</startDate>
            <endDate>2022-06-30</endDate>
        </period>
    </context>
    <context id="i51cefa1dd6e647bc8991a306ad56646f_D20220701-20220930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2022-07-01</startDate>
            <endDate>2022-09-30</endDate>
        </period>
    </context>
    <context id="i9732767fb209402a8b3130d4446cf0dd_D20221001-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2022-10-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i8bb6789dd2f843cb82a83fd5fc2577ba_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="ib02166c7239b48fa890b13833088a8d6_D20210401-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ica6fdfd9286c4d57995a6511ca191736_D20210701-20210930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2021-07-01</startDate>
            <endDate>2021-09-30</endDate>
        </period>
    </context>
    <context id="i4fc808860d28405daa2fbb90f800fb9c_D20211001-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2021-10-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="if5de2643b16c42518868295369efe808_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i3a1250f3410e437492a31418c8974e8c_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i34ed7d5354534fbd81b84cc0aa0d8e79_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="id183facaeebd467fa69fbb2fec9d0b3e_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ib9019082259e456fb9c5846dc8fa2c23_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:AllowanceForCreditLossMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ief70e45bdb5146d0818d09d8a9fc3591_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i13f27dbe43754f2393a096db946b5293_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i70c9db8d427e4e07a83726736dbc62f8_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="idce9bb4f17eb40309dbdc88fdb74adc9_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i1857a0d9d671486aa8f09353d5b63f37_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ValuationAllowancesAndReservesTypeAxis">us-gaap:ValuationAllowanceOfDeferredTaxAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <unit id="segment">
        <measure>cpix:segment</measure>
    </unit>
    <unit id="plan">
        <measure>cpix:plan</measure>
    </unit>
    <unit id="sqft">
        <measure>utr:sqft</measure>
    </unit>
    <unit id="renewalterm">
        <measure>cpix:renewalTerm</measure>
    </unit>
    <unit id="usdPerSqft">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>utr:sqft</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="supplier">
        <measure>cpix:supplier</measure>
    </unit>
    <unit id="installment">
        <measure>cpix:installment</measure>
    </unit>
    <dei:DocumentAnnualReport
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl8yLTEtMS0xLTM0Mzg0_693fc9b6-7876-4a40-b6c6-d210990eb130">true</dei:DocumentAnnualReport>
    <dei:DocumentTransitionReport
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl8zLTEtMS0xLTM0Mzg0_b9da7085-6105-4076-a145-2460138feb0e">false</dei:DocumentTransitionReport>
    <dei:EntityCentralIndexKey
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl80LTEtMS0xLTM0Mzg0_9d4fabe8-be1d-43ef-917f-fa67f9745f55">0001087294</dei:EntityCentralIndexKey>
    <dei:EntityFilerCategory
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl82LTEtMS0xLTM0Mzg0_94180230-d072-4397-a979-dc511b518443">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:DocumentPeriodEndDate
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl84LTEtMS0xLTM0Mzg0_b769ffa9-cd89-49b6-ba78-598080123546">2022-12-31</dei:DocumentPeriodEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl85LTEtMS0xLTM0Mzg0_255d4800-37c3-4be8-a701-06d072702afd">2022</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl8xMC0xLTEtMS0zNDM4NA_6c16f37b-9d81-4b98-83ff-0cddced75087">FY</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl8xMS0xLTEtMS0zNDM4NA_dcf1ffd5-c952-4522-b7ac-d028817fa5ff">false</dei:AmendmentFlag>
    <dei:EntityEmergingGrowthCompany
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl8xMi0xLTEtMS0zNDM4NA_f5cabfc5-7df9-4654-9fcf-cb97b32ff100">false</dei:EntityEmergingGrowthCompany>
    <dei:EntitySmallBusiness
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl8xMy0xLTEtMS0zNDM4NA_258c0537-c1d5-431d-94b2-5b33b2f868c3">true</dei:EntitySmallBusiness>
    <dei:EntityShellCompany
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl8xNC0xLTEtMS0zNDM4NA_72b59c6f-b790-4d32-acb3-3fe12ccd3321">false</dei:EntityShellCompany>
    <dei:EntityWellKnownSeasonedIssuer
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl8xNS0xLTEtMS00MzY2Mw_5a2332bf-1fdd-4397-a324-65091dafdb8d">No</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl8xNi0xLTEtMS00MzY2Ng_5b534e76-0ec0-43a3-945a-86f4a2fd2f64">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl8xNy0xLTEtMS00MzY2OA_a7cc24e6-aa76-4cc4-8fd1-008db894a3a6">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGFibGU6OGJmODg0OTliNTM1NDY3NWFhZjI2MmRmMjRiYTVjOTYvdGFibGVyYW5nZTo4YmY4ODQ5OWI1MzU0Njc1YWFmMjYyZGYyNGJhNWM5Nl8xOC0xLTEtMS00MzY3MA_f554a7d9-d065-4039-b9e7-9e25320efcf0">Yes</dei:EntityInteractiveDataCurrent>
    <dei:CurrentFiscalYearEndDate
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl80L2ZyYWc6OGMxM2MxYjg2MzhlNGVhMWIyMzYwN2JhOGIxNTUyM2YvdGV4dHJlZ2lvbjo4YzEzYzFiODYzOGU0ZWExYjIzNjA3YmE4YjE1NTIzZl80NA_72237d44-0471-412a-be0c-7af7a5cb15e8">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentType
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8xODc_2c55060e-6d1f-4dfb-b0d1-6ff7408dd9e2">10-K</dei:DocumentType>
    <dei:DocumentPeriodEndDate
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8yMzM2_bffd3e7c-47f5-43ca-a114-523ef7399430">2022-12-31</dei:DocumentPeriodEndDate>
    <dei:EntityRegistrantName
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8zMjU_99aa2bfa-d010-4486-ac59-9cd3fe73e5e3">CUMBERLAND PHARMACEUTICALS INC</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8yMzMy_a48c74b7-b8ad-435d-a250-2fa5530ade51">TN</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8yMzMz_449894e6-3107-45bb-ac0d-83a8fde7cf15">62-1765329</dei:EntityTaxIdentificationNumber>
    <dei:EntityFileNumber
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8yMzM0_ce8ce56e-4bd3-4917-aa0a-106657e96d92">001-33637</dei:EntityFileNumber>
    <dei:EntityAddressAddressLine1
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl81NDk3NTU4MTY3OTE_a1a17fe8-42f0-409b-a47c-00a8e0eb4208">1600 West End Avenue</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8yMzM3_ff92e11a-32ea-4a4d-8f3a-cf0899f01e1f">Suite 1300</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8yMzM1_fa127974-4a39-4cec-903b-659b42662080">Nashville</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8yMzM4_438a23b5-5f18-49a4-b81c-6f983aee3247">TN</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8yMzM5_02cec2d4-2157-4996-9f5b-2f7b9213e737">37203</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8yMzQw_86079046-6990-4511-a732-03f0bda7cf3b">615</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8yMzQx_a32a54e4-9c93-45a6-a910-3c9225c79953">255-0068</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGFibGU6Mjk0ODVhOWUwM2UwNDQwMzljNjVjMWEwNmU0NDJiZTgvdGFibGVyYW5nZToyOTQ4NWE5ZTAzZTA0NDAzOWM2NWMxYTA2ZTQ0MmJlOF8xLTAtMS0xLTM0Mzg0_65d7444a-f077-49c6-9be5-bafcb5aae907">Common Stock, $0.00 par value per share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGFibGU6Mjk0ODVhOWUwM2UwNDQwMzljNjVjMWEwNmU0NDJiZTgvdGFibGVyYW5nZToyOTQ4NWE5ZTAzZTA0NDAzOWM2NWMxYTA2ZTQ0MmJlOF8xLTItMS0xLTM0Mzg0_ba286f93-0f00-45cb-932d-4d410188ae4b">CPIX</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGFibGU6Mjk0ODVhOWUwM2UwNDQwMzljNjVjMWEwNmU0NDJiZTgvdGFibGVyYW5nZToyOTQ4NWE5ZTAzZTA0NDAzOWM2NWMxYTA2ZTQ0MmJlOF8xLTQtMS0xLTM0Mzg0_e588fa23-4cb8-4812-bd87-0907b1679a04">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityPublicFloat
      contextRef="i0cf98cdc48c644138ca1c6dedc85be6e_I20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8xOTI1_0ae9fca7-4104-41ce-b1a2-2b3d3f2f2bce"
      unitRef="usd">17300356</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i40f46dea598c4f3cba52391f5ebaf18b_I20230307"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8yMDIz_d1b90d8d-3709-43aa-871e-88968e678fb6"
      unitRef="shares">14395401</dei:EntityCommonStockSharesOutstanding>
    <dei:DocumentsIncorporatedByReferenceTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xL2ZyYWc6NTZmZWU1Nzk5N2I4NDg0Zjg3NTU0MzRhMzk4ZmYxOGYvdGV4dHJlZ2lvbjo1NmZlZTU3OTk3Yjg0ODRmODc1NTQzNGEzOThmZjE4Zl8yMzQy_ea3043c3-4791-4189-ad15-e8d83a52cc57">Certain information required in Part III of Form 10-K is incorporated by reference from the registrant&#x2019;s Proxy Statement for its 2023 annual meeting of shareholders.</dei:DocumentsIncorporatedByReferenceTextBlock>
    <dei:AuditorFirmId
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNjAvZnJhZzpkZmJiOWUxNmNiOTI0MDVhYjc0NzUyZmNjZjljYWJlMS90YWJsZTpmMTQyNWI1ZDJmOWE0MjgxOWNlYzA5NzcwZGQ3NWMzMC90YWJsZXJhbmdlOmYxNDI1YjVkMmY5YTQyODE5Y2VjMDk3NzBkZDc1YzMwXzQtMC0xLTEtMzQzODQvdGV4dHJlZ2lvbjpmYWUxZGIxNzQwMDY0MjI3YTk1NTE0YTliNjBjYWUzN18xMzU_2dd22a9e-f662-4a1a-be1d-bd7d44dff3a1">686</dei:AuditorFirmId>
    <dei:AuditorName
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzIvZnJhZzoxMzhmNTAxOTExN2Y0MjExYjkxYWYwNmEyZmM4N2VkYi90ZXh0cmVnaW9uOjEzOGY1MDE5MTE3ZjQyMTFiOTFhZjA2YTJmYzg3ZWRiXzEwODkz_355805b7-b957-468d-8a72-0c263c288022">FORVIS, LLP(Formerly, BKD, LLP)</dei:AuditorName>
    <dei:AuditorLocation
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzIvZnJhZzoxMzhmNTAxOTExN2Y0MjExYjkxYWYwNmEyZmM4N2VkYi90ZXh0cmVnaW9uOjEzOGY1MDE5MTE3ZjQyMTFiOTFhZjA2YTJmYzg3ZWRiXzEwODk0_fef29421-5135-4db7-b738-1b0dddc7f584">Nashville, Tennessee</dei:AuditorLocation>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMtMi0xLTEtMzQzODQ_8e357b67-2226-45fe-b3ba-623142dcd2de"
      unitRef="usd">19757970</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMtNC0xLTEtMzQzODQ_ee257a49-08bb-4961-899b-1e0dcf464ade"
      unitRef="usd">27040816</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzUtMi0xLTEtMzQzODQ_b5a26a4f-13c1-4112-af32-7361eb785af9"
      unitRef="usd">13163681</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzUtNC0xLTEtMzQzODQ_80b35395-3279-4f89-935c-28c897949c68"
      unitRef="usd">6877346</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:InventoryNet
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzYtMi0xLTEtMzQzODQ_761d778b-7ac6-4411-9251-f899a72a217b"
      unitRef="usd">9863581</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzYtNC0xLTEtMzQzODQ_a91b6957-c70d-48c0-b9ab-14af4fc7ed69"
      unitRef="usd">8429882</us-gaap:InventoryNet>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzctMi0xLTEtMzQzODQ_a57781b9-5195-4a43-909f-2a8e4d552db0"
      unitRef="usd">3084978</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzctNC0xLTEtMzQzODQ_99a2455c-0838-46ef-a15f-7be38189ac83"
      unitRef="usd">3339969</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzgtMi0xLTEtMzQzODQ_e4781204-94d7-4da2-b776-ff04023da4d0"
      unitRef="usd">45870210</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzgtNC0xLTEtMzQzODQ_45ddaa41-6f33-49cf-b411-accf77bf757f"
      unitRef="usd">45688013</us-gaap:AssetsCurrent>
    <us-gaap:InventoryNoncurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzktMi0xLTEtMzQzODQ_e1fc1e2b-ced5-44d4-8cb9-21fc4e8f5477"
      unitRef="usd">7527167</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryNoncurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzktNC0xLTEtMzQzODQ_5764d81e-0ab7-494d-8352-72d089690ffa"
      unitRef="usd">9048567</us-gaap:InventoryNoncurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzEwLTItMS0xLTM0Mzg0_84db3688-3095-4398-9ac8-cba927846cda"
      unitRef="usd">284039</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzEwLTQtMS0xLTM0Mzg0_eec1eeeb-f03f-4ce3-a9ff-5e0e38ab01d2"
      unitRef="usd">442635</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzExLTItMS0xLTM0Mzg0_f0ce02ea-add8-4fe8-b959-eb5c9ff8367c"
      unitRef="usd">30590678</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzExLTQtMS0xLTM0Mzg0_ea4cc267-c650-4b3c-b0c7-88c4b13fd2bb"
      unitRef="usd">23954475</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:Goodwill
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzEyLTItMS0xLTM0Mzg0_78b5da45-50fe-48e7-a004-fb4c05368aa4"
      unitRef="usd">914000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzEyLTQtMS0xLTM0Mzg0_0face6d7-076c-4b76-b6ab-3a560ad7a33d"
      unitRef="usd">882000</us-gaap:Goodwill>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzEzLTItMS0xLTM0Mzg0_3901c6a2-f4db-4ce4-8258-8dfa30c5c735"
      unitRef="usd">5218403</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzEzLTQtMS0xLTM0Mzg0_401c446f-2c3c-431c-95a3-2e3d099fb8c1"
      unitRef="usd">1024200</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzE0LTItMS0xLTM0Mzg0_58d8f739-d6cf-476f-bc76-37134f3dda5c"
      unitRef="usd">2520661</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzE0LTQtMS0xLTM0Mzg0_b62bc93b-be59-4d89-ae41-86f69c33a1af"
      unitRef="usd">3419908</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzE1LTItMS0xLTM0Mzg0_71ad6410-fd91-4ca2-9a80-f32346da4f94"
      unitRef="usd">92925158</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzE1LTQtMS0xLTM0Mzg0_4676c965-ba71-4b75-a60a-1497734aefa7"
      unitRef="usd">84459798</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzE5LTItMS0xLTM0Mzg0_90537ccc-234d-465d-8e54-59f7a5f3ae9c"
      unitRef="usd">10819011</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzE5LTQtMS0xLTM0Mzg0_5be8ea5e-9f3b-4e0e-9aa4-4b86bde0ff5c"
      unitRef="usd">9640980</us-gaap:AccountsPayableCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzIwLTItMS0xLTM0Mzg0_a2467877-60a1-4855-ab9c-f2eaeeaab8ea"
      unitRef="usd">172910</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzIwLTQtMS0xLTM0Mzg0_aa359a79-2780-44d7-a494-e1adb278ff2d"
      unitRef="usd">969677</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzIxLTItMS0xLTM0Mzg0_5eb36ea6-a379-43b3-82f2-1989ac49fd77"
      unitRef="usd">17587911</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzIxLTQtMS0xLTM0Mzg0_d49f665e-276c-4740-8e6e-bff414fc1a2b"
      unitRef="usd">8668303</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzIyLTItMS0xLTM0Mzg0_58bfdf9a-093d-4c4f-82fe-b7ef0389d867"
      unitRef="usd">28579832</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzIyLTQtMS0xLTM0Mzg0_ac4bc582-5dbc-4617-845f-4c4580eca05e"
      unitRef="usd">19278960</us-gaap:LiabilitiesCurrent>
    <us-gaap:LongTermLineOfCredit
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzIzLTItMS0xLTM0Mzg0_27cb8e24-2aa5-452c-be26-036b53d2df42"
      unitRef="usd">16200000</us-gaap:LongTermLineOfCredit>
    <us-gaap:LongTermLineOfCredit
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzIzLTQtMS0xLTM0Mzg0_640e3f6e-3ad3-47e6-aa91-1edfebfc8b64"
      unitRef="usd">15000000</us-gaap:LongTermLineOfCredit>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzI0LTItMS0xLTM0Mzg0_c303e501-2f8d-4d46-91fe-4b21199aa06d"
      unitRef="usd">4586301</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzI0LTQtMS0xLTM0Mzg0_7ebe5c98-c9ee-48e4-be4a-27077ecfe8f6"
      unitRef="usd">90016</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzI1LTItMS0xLTM0Mzg0_eaec4cdb-f744-4ead-b122-da3da96da907"
      unitRef="usd">7585019</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzI1LTQtMS0xLTM0Mzg0_26c7423e-da97-4a55-a917-c313d2336d19"
      unitRef="usd">7488844</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzI2LTItMS0xLTM0Mzg0_7c0184cf-dc5b-46f6-b7e6-d1483483cdd6"
      unitRef="usd">56951152</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzI2LTQtMS0xLTM0Mzg0_4e007662-c46f-4148-97ca-4da8352f26d2"
      unitRef="usd">41857820</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzI3LTItMS0xLTM0Mzg0_df625dbf-1f40-4c4a-8ba9-bdbef6b8b4e5"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzI3LTQtMS0xLTM0Mzg0_0ea1bde9-966b-47d8-9f12-9cb54b42f31d"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommonStockNoParValue
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMwLTAtMS0xLTM0Mzg0L3RleHRyZWdpb246YzFkYmQ3NGJlZTg4NGU3MTgwNTRkNmYxNzhjYjczMTlfMTk_2a61f772-8dc5-472c-9127-dd744b3eab65"
      unitRef="usdPerShare">0</us-gaap:CommonStockNoParValue>
    <us-gaap:CommonStockNoParValue
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMwLTAtMS0xLTM0Mzg0L3RleHRyZWdpb246YzFkYmQ3NGJlZTg4NGU3MTgwNTRkNmYxNzhjYjczMTlfMTk_ace6eb65-cf35-4560-a811-cc4d5aa9d618"
      unitRef="usdPerShare">0</us-gaap:CommonStockNoParValue>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMwLTAtMS0xLTM0Mzg0L3RleHRyZWdpb246YzFkYmQ3NGJlZTg4NGU3MTgwNTRkNmYxNzhjYjczMTlfMzM_894f9261-4c18-4493-8554-12147ff863bb"
      unitRef="shares">100000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMwLTAtMS0xLTM0Mzg0L3RleHRyZWdpb246YzFkYmQ3NGJlZTg4NGU3MTgwNTRkNmYxNzhjYjczMTlfMzM_f67f824a-bc1e-4a45-9230-3264ffc09721"
      unitRef="shares">100000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMwLTAtMS0xLTM0Mzg0L3RleHRyZWdpb246YzFkYmQ3NGJlZTg4NGU3MTgwNTRkNmYxNzhjYjczMTlfNTU_626e21f2-f772-4e4b-8703-9c65973469eb"
      unitRef="shares">14366316</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMwLTAtMS0xLTM0Mzg0L3RleHRyZWdpb246YzFkYmQ3NGJlZTg4NGU3MTgwNTRkNmYxNzhjYjczMTlfNTU_d1b25bd3-11a6-44c8-be11-8cc0afe4e643"
      unitRef="shares">14366316</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMwLTAtMS0xLTM0Mzg0L3RleHRyZWdpb246YzFkYmQ3NGJlZTg4NGU3MTgwNTRkNmYxNzhjYjczMTlfNjI_8399b24e-c5b1-4506-8246-34d253bf75e5"
      unitRef="shares">14742754</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMwLTAtMS0xLTM0Mzg0L3RleHRyZWdpb246YzFkYmQ3NGJlZTg4NGU3MTgwNTRkNmYxNzhjYjczMTlfNjI_c28f7a6a-01b8-4b24-9c1f-5feff49e5988"
      unitRef="shares">14742754</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValueOutstanding
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMwLTItMS0xLTM0Mzg0_93930bee-b7e2-42e9-99cd-3bb102ba731e"
      unitRef="usd">47474973</us-gaap:CommonStockValueOutstanding>
    <us-gaap:CommonStockValueOutstanding
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMwLTQtMS0xLTM0Mzg0_0482ecb4-dd1e-4e5f-9ca1-ac389be90ec6"
      unitRef="usd">48452906</us-gaap:CommonStockValueOutstanding>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMxLTItMS0xLTM0Mzg0_e15b995a-70de-439d-9cac-839bbae1c21c"
      unitRef="usd">-11208841</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMxLTQtMS0xLTM0Mzg0_ce994bdb-c18b-4890-907d-87a6fb6a56d5"
      unitRef="usd">-5638600</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMyLTItMS0xLTM0Mzg0_a5f0c8ed-f70a-4d8b-9035-c79e59d38f12"
      unitRef="usd">36266132</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMyLTQtMS0xLTM0Mzg0_97194f39-6e2f-43b1-98cd-5dd2eb402ba6"
      unitRef="usd">42814306</us-gaap:StockholdersEquity>
    <us-gaap:MinorityInterest
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMzLTItMS0xLTM0Mzg0_413cb8ac-24db-4524-95b0-2f3fad2f53ba"
      unitRef="usd">-292126</us-gaap:MinorityInterest>
    <us-gaap:MinorityInterest
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzMzLTQtMS0xLTM0Mzg0_0325baf2-fe38-48da-a5cf-507c57d9d99a"
      unitRef="usd">-212328</us-gaap:MinorityInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzM0LTItMS0xLTM0Mzg0_27fd546a-adad-43df-aa68-c3c3e5521366"
      unitRef="usd">35974006</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzM0LTQtMS0xLTM0Mzg0_750b9710-8c97-4f6a-9408-a7a9e048d261"
      unitRef="usd">42601978</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzM1LTItMS0xLTM0Mzg0_53c3fb80-c3b7-44b2-ac75-4a05a433cb91"
      unitRef="usd">92925158</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzUvZnJhZzpiZjY0MDNmNjIyMTQ0ZDRmODhkYmQxOTEyNWUxNWZjYy90YWJsZToyYmMzZjgwZTUxYTI0NjkzOGNhODdhZDQ2NDdkNGI3My90YWJsZXJhbmdlOjJiYzNmODBlNTFhMjQ2OTM4Y2E4N2FkNDY0N2Q0YjczXzM1LTQtMS0xLTM0Mzg0_31e77d40-3456-446b-9893-ba5b140c9316"
      unitRef="usd">84459798</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:Revenues
      contextRef="idf6dac19d6f34192bbf220dba001eef3_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzItMi0xLTEtMzQzODQ_8cc4e979-86c8-40d3-a16e-deeb4180bde0"
      unitRef="usd">40681182</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="i82deea75887548fe9dd05c788a9a95d9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzItNC0xLTEtMzQzODQ_5efeff65-f9a6-409e-baf7-31ba557bd41c"
      unitRef="usd">35045259</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="i78d55d038f4f4a95b6d5aa9d8870f9f3_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzMtMi0xLTEtMzQzODQ_9ced2568-122f-4284-8db6-00da62375981"
      unitRef="usd">1329767</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="i492284a80be94550bc059ef2e65088e9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzMtNC0xLTEtMzQzODQ_213742f3-de81-4ad7-9e63-5a3d11f7db01"
      unitRef="usd">939784</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzQtMi0xLTEtMzQzODQ_545fdfb8-ad07-4105-974b-5d623cbfcb8a"
      unitRef="usd">42010949</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzQtNC0xLTEtMzQzODQ_cac86d8d-786b-47a2-9785-81a13dcff175"
      unitRef="usd">35985043</us-gaap:Revenues>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzYtMi0xLTEtMzQzODQ_44cb5588-75b4-47e0-af96-d8ca965abbd4"
      unitRef="usd">9118521</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzYtNC0xLTEtMzQzODQ_d70b80c1-93be-4394-a7b9-b2583650e62f"
      unitRef="usd">8811248</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:SellingAndMarketingExpense
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzctMi0xLTEtMzQzODQ_4502b818-656c-4434-af72-ce671606cb03"
      unitRef="usd">16660945</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzctNC0xLTEtMzQzODQ_82a663af-9f1e-4b6e-9660-2328969c9063"
      unitRef="usd">15015424</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzgtMi0xLTEtMzQzODQ_f555c75b-63d9-4a71-a76b-15e83035efbf"
      unitRef="usd">6688924</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzgtNC0xLTEtMzQzODQ_68376946-5900-407f-9ac2-6cacc5e97e0e"
      unitRef="usd">5684465</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzktMi0xLTEtMzQzODQ_882fe21b-e631-45d7-a3cf-7f223ea24a53"
      unitRef="usd">10180120</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzktNC0xLTEtMzQzODQ_e8683580-c6b5-463d-8446-20117142cc6a"
      unitRef="usd">9780026</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzEwLTItMS0xLTM0Mzg0_8a75d7f5-3759-4b9b-8362-dc969071f851"
      unitRef="usd">5067368</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzEwLTQtMS0xLTM0Mzg0_7d0e1723-89cd-48fa-84c4-425a24d385a5"
      unitRef="usd">4371300</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:CostsAndExpenses
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzExLTItMS0xLTM0Mzg0_9e9543af-83ee-4908-a7fc-c8e911480f26"
      unitRef="usd">47715878</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzExLTQtMS0xLTM0Mzg0_6d72a092-f0c5-4076-8c74-445cb5d7e70d"
      unitRef="usd">43662463</us-gaap:CostsAndExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzEyLTItMS0xLTM0Mzg0_462e5e9c-f7bc-49db-911d-dd00dbf1da08"
      unitRef="usd">-5704929</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzEyLTQtMS0xLTM0Mzg0_9f324b0e-1c16-4ebb-b39b-351a6d11b1c4"
      unitRef="usd">-7677420</us-gaap:OperatingIncomeLoss>
    <us-gaap:InvestmentIncomeInterest
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzEzLTItMS0xLTM0Mzg0_928c8bd0-0b31-4f63-8b9c-3099f17a6f31"
      unitRef="usd">98405</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzEzLTQtMS0xLTM0Mzg0_77ffff6d-e2ac-4993-a799-eeda6efddb55"
      unitRef="usd">26081</us-gaap:InvestmentIncomeInterest>
    <us-gaap:OtherIncome
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE0LTItMS0xLTM0Mzg0_2b42df4a-977a-45c4-9a09-855cc40c0df1"
      unitRef="usd">0</us-gaap:OtherIncome>
    <us-gaap:OtherIncome
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE0LTQtMS0xLTM0Mzg0_6d61a0dc-fb79-412e-86b2-30c4bb7499cc"
      unitRef="usd">2187140</us-gaap:OtherIncome>
    <us-gaap:InsuredEventGainLoss
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE1LTItMS0xLTM4Mzgx_c3295a38-6d16-4e5c-8399-f498655e6d93"
      unitRef="usd">611330</us-gaap:InsuredEventGainLoss>
    <us-gaap:InsuredEventGainLoss
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE1LTQtMS0xLTM4Mzgx_1807ae5c-c948-4ca0-a41c-d20789855bce"
      unitRef="usd">0</us-gaap:InsuredEventGainLoss>
    <us-gaap:InterestExpense
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE1LTItMS0xLTM0Mzg0_94527528-79e9-46c2-882e-eb8ec6f805a1"
      unitRef="usd">585995</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE1LTQtMS0xLTM0Mzg0_bea9a146-b927-4a81-8065-51f41cfb3f94"
      unitRef="usd">98031</us-gaap:InterestExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE2LTItMS0xLTM0Mzg0_ce06dcc0-f7b3-4cd2-9916-a523cfef01f2"
      unitRef="usd">-5581189</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE2LTQtMS0xLTM0Mzg0_edce455a-7c41-44ef-9c9d-0a94ccc88883"
      unitRef="usd">-5562230</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE3LTItMS0xLTM0Mzg0_f8001bb8-47c0-4756-ab50-2198621ef6d3"
      unitRef="usd">68850</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE3LTQtMS0xLTM0Mzg0_9a126991-5456-4b6a-abdc-861f795c9d3a"
      unitRef="usd">34891</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE4LTItMS0xLTM0Mzg0_db4d81a0-02eb-4ec4-9f83-43571fc908ec"
      unitRef="usd">-5650039</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE4LTQtMS0xLTM0Mzg0_d4ccc55b-061d-4671-b20f-3aa2e5f7aab6"
      unitRef="usd">-5597121</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE5LTItMS0xLTM0Mzg0_f67cb05b-98cd-4076-b7f8-abd264f3c575"
      unitRef="usd">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzE5LTQtMS0xLTM0Mzg0_4207b02a-8aee-429a-a0ab-c761f4d74561"
      unitRef="usd">1994322</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax>
    <us-gaap:ProfitLoss
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzIwLTItMS0xLTM0Mzg0_1b737811-2bb4-4d41-bd6d-cc4c47c638fe"
      unitRef="usd">-5650039</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzIwLTQtMS0xLTM0Mzg0_0fd71f32-dedb-474f-b807-cbb1f18941c3"
      unitRef="usd">-3602799</us-gaap:ProfitLoss>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzIxLTItMS0xLTM0Mzg0_b61ce7e9-df0d-44fb-98d4-26d6b618e9fc"
      unitRef="usd">-79798</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzIxLTQtMS0xLTM0Mzg0_9d29cd60-538e-4a3c-a017-88646f4ab240"
      unitRef="usd">-95212</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLoss
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzIyLTItMS0xLTM0Mzg0_349e369d-2ed7-4299-94cf-fcc1d4a72964"
      unitRef="usd">-5570241</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzIyLTQtMS0xLTM0Mzg0_c11896fa-9e95-43fe-b104-9b27eb2e768c"
      unitRef="usd">-3507587</us-gaap:NetIncomeLoss>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzI1LTItMS0xLTM0Mzg0_d11fc394-1d50-46fa-ae71-c2cc576614ca"
      unitRef="usdPerShare">-0.38</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzI1LTQtMS0xLTM0Mzg0_ae816b14-8fbf-41d5-aac8-f75c1a1c408c"
      unitRef="usdPerShare">-0.37</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzI2LTItMS0xLTM0Mzg0_8101d92c-7b24-4608-9d91-9c28e4e6bb56"
      unitRef="usdPerShare">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzI2LTQtMS0xLTM0Mzg0_38d883b1-0059-4084-9b96-4da2fb1b08b5"
      unitRef="usdPerShare">0.13</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
    <us-gaap:EarningsPerShareBasic
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzI3LTItMS0xLTM0Mzg0_0384c07b-5fb9-40c8-9dfd-870db3ad64c7"
      unitRef="usdPerShare">-0.38</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzI3LTQtMS0xLTM0Mzg0_ecee08eb-ca74-4cb4-8d7a-b970f7fb6e7f"
      unitRef="usdPerShare">-0.24</us-gaap:EarningsPerShareBasic>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzI5LTItMS0xLTM0Mzg0_4c8e2cd3-6467-4ee5-8e53-2d29154bee16"
      unitRef="usdPerShare">-0.38</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzI5LTQtMS0xLTM0Mzg0_1d85b8d2-213d-414c-afa9-42eee6486514"
      unitRef="usdPerShare">-0.37</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzMwLTItMS0xLTM0Mzg0_1117dfb6-8d22-42d0-a280-7492920528c0"
      unitRef="usdPerShare">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzMwLTQtMS0xLTM0Mzg0_edfe25bb-dfba-4062-ae4d-cf1adeff97f1"
      unitRef="usdPerShare">0.13</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzMxLTItMS0xLTM0Mzg0_d68ccf0d-6b8f-4e1e-8ea4-765ef06bfc35"
      unitRef="usdPerShare">-0.38</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzMxLTQtMS0xLTM0Mzg0_06b2af62-7dae-4c33-ad88-77e28c0eb2c1"
      unitRef="usdPerShare">-0.24</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzMzLTItMS0xLTM0Mzg0_77d73480-200e-48f8-9ba0-2fc417f838ea"
      unitRef="shares">14563592</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzMzLTQtMS0xLTM0Mzg0_3d3efbef-7a12-4391-9370-ef2cdd85ac62"
      unitRef="shares">14904834</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzM0LTItMS0xLTM0Mzg0_158e62d8-1a26-4891-8ed0-1713e4220dce"
      unitRef="shares">14563592</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xNzgvZnJhZzphYWRjMDUyZmE5YjI0MzM4YjI4MTJlZGM1Y2QzN2VjMy90YWJsZTpiNGVjMjAxYzVhNGI0YzFjOTcwYTQwODJiNTFkMjUwZC90YWJsZXJhbmdlOmI0ZWMyMDFjNWE0YjRjMWM5NzBhNDA4MmI1MWQyNTBkXzM0LTQtMS0xLTM0Mzg0_00dc128d-89c3-48fe-bc42-89108b16b078"
      unitRef="shares">14904834</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:ProfitLoss
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzItMi0xLTEtMzQzODQ_350ebc79-8574-4ce5-901f-5ce28b6708e3"
      unitRef="usd">-5650039</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzItNC0xLTEtMzQzODQ_a8c24ae2-8503-40b9-a804-1cdd532e1fcb"
      unitRef="usd">-3602799</us-gaap:ProfitLoss>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzMtMi0xLTEtMzQzODQ_5e4a460a-7007-4d3c-bc60-bfb2b5941dfd"
      unitRef="usd">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzMtNC0xLTEtMzQzODQ_08d8af61-7652-4a8a-b3b4-f2de2d715265"
      unitRef="usd">1994322</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzQtMi0xLTEtMzQzODQ_e0e37b7f-cfc2-48e2-bf03-6e8de9415997"
      unitRef="usd">-5650039</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzQtNC0xLTEtMzQzODQ_95d02f18-6400-4838-b26a-9276f2633e26"
      unitRef="usd">-5597121</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzYtMi0xLTEtMzQzODQ_d0c49473-1ec9-468e-948d-55a21b2ac409"
      unitRef="usd">5328113</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzYtNC0xLTEtMzQzODQ_bb57def1-a423-40b2-b3ad-9d763717a7c1"
      unitRef="usd">4606366</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzctMi0xLTEtMzQzODQ_9e9da306-9d4d-47b2-a70e-6ab46ecb30e7"
      unitRef="usd">0</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzctNC0xLTEtMzQzODQ_ea37bfcc-ccdf-418a-854c-e0e85acbd8dd"
      unitRef="usd">0</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:ShareBasedCompensation
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzgtMi0xLTEtMzQzODQ_073467d8-e8c7-494d-a2ce-9d8b7716eacd"
      unitRef="usd">447503</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzgtNC0xLTEtMzQzODQ_ba7ed6af-4314-4776-9fc1-bf70b0b0bdac"
      unitRef="usd">741867</us-gaap:ShareBasedCompensation>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationAsset1
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzEwLTItMS0xLTM0Mzg0_1f9ddd31-5923-422d-8cf1-22f2ac266eea"
      unitRef="usd">2088296</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationAsset1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationAsset1
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzEwLTQtMS0xLTM0Mzg0_7e55cd4e-bfd6-41a1-8b6e-c95617cd5189"
      unitRef="usd">1147750</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationAsset1>
    <cpix:IncreaseDecreaseInCashSurrenderValueOfLifeInsurancePolicy
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzEyLTItMS0xLTM0Mzg0_d598b9e3-c274-4a17-8496-adfc32584f2c"
      unitRef="usd">-613657</cpix:IncreaseDecreaseInCashSurrenderValueOfLifeInsurancePolicy>
    <cpix:IncreaseDecreaseInCashSurrenderValueOfLifeInsurancePolicy
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzEyLTQtMS0xLTM0Mzg0_9bea4e70-bcec-4817-8eeb-a7fed7e83845"
      unitRef="usd">282207</cpix:IncreaseDecreaseInCashSurrenderValueOfLifeInsurancePolicy>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzEzLTItMS0xLTM0Mzg0_310a7939-4136-4769-a798-920118f57cec"
      unitRef="usd">11237</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzEzLTQtMS0xLTM0Mzg0_78da5d84-3f77-411a-b959-8cfa2f834b4a"
      unitRef="usd">34053</us-gaap:AmortizationOfFinancingCosts>
    <cpix:NoncashOrPartNoncashGainOnTransaction
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzE0LTItMS0xLTM4ODg0_eb20a801-9fdc-4cf0-b6ed-ca51d2e5ab40"
      unitRef="usd">37882</cpix:NoncashOrPartNoncashGainOnTransaction>
    <cpix:NoncashOrPartNoncashGainOnTransaction
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzE0LTQtMS0xLTM4ODg0_11df188d-adf6-40b6-af95-5f5215f93d47"
      unitRef="usd">0</cpix:NoncashOrPartNoncashGainOnTransaction>
    <us-gaap:OtherNonoperatingGainsLosses
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzE0LTItMS0xLTM0Mzg0_05ab363f-47c7-4d76-99c8-03497e391740"
      unitRef="usd">611330</us-gaap:OtherNonoperatingGainsLosses>
    <us-gaap:OtherNonoperatingGainsLosses
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzE0LTQtMS0xLTM0Mzg0_8079d155-723b-4d28-b6c2-81b687b6f2e8"
      unitRef="usd">0</us-gaap:OtherNonoperatingGainsLosses>
    <us-gaap:UnrealizedGainLossOnInvestments
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzE1LTItMS0xLTM0Mzg0_0583a41d-3e12-47ab-8df9-e6889a37ef6c"
      unitRef="usd">0</us-gaap:UnrealizedGainLossOnInvestments>
    <us-gaap:UnrealizedGainLossOnInvestments
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzE1LTQtMS0xLTM0Mzg0_a7437192-834a-4cff-a1de-2537f67e1b0c"
      unitRef="usd">2187140</us-gaap:UnrealizedGainLossOnInvestments>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzE3LTItMS0xLTM0Mzg0_219ffc6a-7d8d-42f7-9467-b4b4e8240d45"
      unitRef="usd">6115640</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzE3LTQtMS0xLTM0Mzg0_cbffe78b-28ae-4b8b-b139-8433afd2c0c5"
      unitRef="usd">-5500367</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzE4LTItMS0xLTM0Mzg0_9336c5d5-4878-43fb-8882-43c64effd555"
      unitRef="usd">-911078</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzE4LTQtMS0xLTM0Mzg0_bb4888b2-29b2-45ce-b984-2fca95febd6b"
      unitRef="usd">-4816450</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzE5LTItMS0xLTM0Mzg0_77f11e2e-c511-40dc-8903-3db88f1c3e04"
      unitRef="usd">-689260</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzE5LTQtMS0xLTM0Mzg0_bcadfe6f-1cc8-4a12-94b7-5cba9e40d246"
      unitRef="usd">35568</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzIwLTItMS0xLTM0Mzg0_71cccd90-f701-4349-80bf-e8d8a3965bff"
      unitRef="usd">14536076</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzIwLTQtMS0xLTM0Mzg0_b9a7704a-8481-4cde-8ddd-379cebc77b78"
      unitRef="usd">-757591</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzIxLTItMS0xLTM0Mzg0_910ee84a-14b2-4f4a-ad96-8c65b468cddf"
      unitRef="usd">419659</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzIxLTQtMS0xLTM0Mzg0_0951ebb9-b187-4b12-bc42-7c387a45d080"
      unitRef="usd">-1343605</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivitiesContinuingOperations
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzIyLTItMS0xLTM0Mzg0_eede9e2d-23ea-4605-a740-405219b78737"
      unitRef="usd">8453396</us-gaap:NetCashProvidedByUsedInOperatingActivitiesContinuingOperations>
    <us-gaap:NetCashProvidedByUsedInOperatingActivitiesContinuingOperations
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzIyLTQtMS0xLTM0Mzg0_1eb182b5-e817-4052-adf7-5b936c05ad33"
      unitRef="usd">4348121</us-gaap:NetCashProvidedByUsedInOperatingActivitiesContinuingOperations>
    <us-gaap:CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzIzLTItMS0xLTM0Mzg0_d5134832-c38d-450b-8d4a-21836df1ee08"
      unitRef="usd">0</us-gaap:CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations>
    <us-gaap:CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzIzLTQtMS0xLTM0Mzg0_7a1b72df-b16a-4b66-bba6-3ce2a03eb578"
      unitRef="usd">1994322</us-gaap:CashProvidedByUsedInOperatingActivitiesDiscontinuedOperations>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzI0LTItMS0xLTM0Mzg0_50c924cc-5a65-4be6-8361-2770fb48e44b"
      unitRef="usd">8453396</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzI0LTQtMS0xLTM0Mzg0_eddcc8d3-63a0-47b1-809b-c11b872ec2c1"
      unitRef="usd">6342443</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzI2LTItMS0xLTM0Mzg0_e6ee662e-c291-4b4c-93bf-4ff7f02c0f14"
      unitRef="usd">102148</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzI2LTQtMS0xLTM0Mzg0_55ef4d4e-808b-4db6-9589-c9942f4c12b0"
      unitRef="usd">103532</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzI3LTItMS0xLTM0Mzg0_d5d2f2bd-7b12-4e78-9a29-8ed6c3b6ca31"
      unitRef="usd">1971662</us-gaap:PaymentsToAcquireIntangibleAssets>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzI3LTQtMS0xLTM0Mzg0_6782fa9f-d3d5-4d4c-ac74-4f4b547d96e0"
      unitRef="usd">250930</us-gaap:PaymentsToAcquireIntangibleAssets>
    <cpix:ProceedsFromCollaborationArrangement
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzI4LTItMS0xLTM4MDU5_57fe2f6b-b29a-486f-9ced-cf80da2f70e5"
      unitRef="usd">1000000</cpix:ProceedsFromCollaborationArrangement>
    <cpix:ProceedsFromCollaborationArrangement
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzI4LTQtMS0xLTM4MDU5_1a174d16-d87f-4833-bd56-2811d972e153"
      unitRef="usd">0</cpix:ProceedsFromCollaborationArrangement>
    <cpix:ProceedsFromSurrenderOfLifeInsurancePolicy
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzI4LTItMS0xLTM0Mzg0_4b93e108-ab34-4d1b-8d79-ebd7f145447b"
      unitRef="usd">0</cpix:ProceedsFromSurrenderOfLifeInsurancePolicy>
    <cpix:ProceedsFromSurrenderOfLifeInsurancePolicy
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzI4LTQtMS0xLTM0Mzg0_77a7af0c-abaf-4efe-a2ed-4a2942e9d462"
      unitRef="usd">85944</cpix:ProceedsFromSurrenderOfLifeInsurancePolicy>
    <cpix:IncreaseDecreaseInProceedsFromLifeInsurancePolicy
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzI5LTItMS0xLTM0Mzg0_91dac0c7-ec2b-4beb-9539-05c5df8815bc"
      unitRef="usd">0</cpix:IncreaseDecreaseInProceedsFromLifeInsurancePolicy>
    <cpix:IncreaseDecreaseInProceedsFromLifeInsurancePolicy
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzI5LTQtMS0xLTM0Mzg0_98f79024-8672-4804-a425-96f2c017de89"
      unitRef="usd">33375</cpix:IncreaseDecreaseInProceedsFromLifeInsurancePolicy>
    <us-gaap:ProceedsFromLifeInsurancePolicies
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzMxLTItMS0xLTM4Mzk4_4388d8ee-18bf-441b-9a3c-904a2b9f8970"
      unitRef="usd">877597</us-gaap:ProceedsFromLifeInsurancePolicies>
    <us-gaap:ProceedsFromLifeInsurancePolicies
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzMxLTQtMS0xLTM4Mzk4_9a0c152e-20bf-462c-b29b-19dd4f02d317"
      unitRef="usd">0</us-gaap:ProceedsFromLifeInsurancePolicies>
    <cpix:ProceedsFromSettlementOfPatentLitigation
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzMyLTItMS0xLTM4NDA2_7e3714f9-3dd5-4ff1-818f-90ecc82f4255"
      unitRef="usd">21757</cpix:ProceedsFromSettlementOfPatentLitigation>
    <cpix:ProceedsFromSettlementOfPatentLitigation
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzMyLTQtMS0xLTM4NDA2_e083a5f5-bcc1-4029-b234-4e2eb5be6e8c"
      unitRef="usd">0</cpix:ProceedsFromSettlementOfPatentLitigation>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzMwLTItMS0xLTM0Mzg0_45d682b0-4e6a-48cb-95f2-8f742f8e53f0"
      unitRef="usd">13500000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzMwLTQtMS0xLTM0Mzg0_ed57d964-7d56-4b9b-8a86-45a62294104c"
      unitRef="usd">0</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:PaymentsToAcquireNotesReceivable
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzMxLTItMS0xLTM0Mzg0_209f3969-9782-49f5-ab16-e744fc4ff7ed"
      unitRef="usd">0</us-gaap:PaymentsToAcquireNotesReceivable>
    <us-gaap:PaymentsToAcquireNotesReceivable
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzMxLTQtMS0xLTM0Mzg0_77835488-ac3d-4751-9bb9-b41a197d0e63"
      unitRef="usd">200000</us-gaap:PaymentsToAcquireNotesReceivable>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzM0LTItMS0xLTM0Mzg0_bbc50b19-9d3b-4280-8f7e-da3299bcb78a"
      unitRef="usd">-13674456</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo4ZDg2NmEzYjUzZWY0OTg4OGQ4YWMwZTJmM2MzZjM1Yi90YWJsZXJhbmdlOjhkODY2YTNiNTNlZjQ5ODg4ZDhhYzBlMmYzYzNmMzViXzM0LTQtMS0xLTM0Mzg0_c9f02282-ffde-4ff1-9673-08ebad0df766"
      unitRef="usd">-501893</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromRepaymentsOfLinesOfCredit
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzItMi0xLTEtMzQzODQ_7a5f50b2-e023-4cdb-9c06-6eb89535f79f"
      unitRef="usd">52900000</us-gaap:ProceedsFromRepaymentsOfLinesOfCredit>
    <us-gaap:ProceedsFromRepaymentsOfLinesOfCredit
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzItNC0xLTEtMzQzODQ_6a6f45e2-0791-43f8-a3f5-95e2b9f71014"
      unitRef="usd">59000000</us-gaap:ProceedsFromRepaymentsOfLinesOfCredit>
    <us-gaap:RepaymentsOfNotesPayable
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzMtMi0xLTEtMzQzODQ_c0b2bf7c-90fb-44b7-8283-68669ebf5d22"
      unitRef="usd">51700000</us-gaap:RepaymentsOfNotesPayable>
    <us-gaap:RepaymentsOfNotesPayable
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzMtNC0xLTEtMzQzODQ_686690ed-09ea-46ec-b0a9-62a2eaf95eb4"
      unitRef="usd">59000000</us-gaap:RepaymentsOfNotesPayable>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzQtMi0xLTEtMzQzODQ_78c1e78a-bd9c-4fb9-9e1d-03d1a74b0886"
      unitRef="usd">1053042</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzQtNC0xLTEtMzQzODQ_84855dd2-d555-4714-a985-dbf988a608ef"
      unitRef="usd">1386849</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzUtMi0xLTEtMzQzODQ_18556817-0723-4af5-bd4d-cd911353abb7"
      unitRef="usd">2208744</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzUtNC0xLTEtMzQzODQ_02c2169a-0043-439e-8739-db6336b397e1"
      unitRef="usd">2166681</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzEwLTItMS0xLTM0Mzg0_6baa7206-0594-4c98-8502-a8b754ced7aa"
      unitRef="usd">-2061786</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzEwLTQtMS0xLTM0Mzg0_825bd200-2e5f-413e-a5e9-da52b6b495f0"
      unitRef="usd">-3553530</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzExLTItMS0xLTM0Mzg0_3e56a357-592b-43db-989c-c71c697b8720"
      unitRef="usd">-7282846</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzExLTQtMS0xLTM0Mzg0_70093414-098f-4cab-ae29-7e56723e1298"
      unitRef="usd">2287020</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzEyLTItMS0xLTM0Mzg0_785d6f60-3287-4b69-b706-99ca9d22a1c0"
      unitRef="usd">27040816</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i6b1f58f544414d679bba8a83be98bb54_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzEyLTQtMS0xLTM0Mzg0_019c0412-25e5-4b92-994d-f2bc085a3367"
      unitRef="usd">24753796</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzEzLTItMS0xLTM0Mzg0_779c6b7c-72e7-4edc-80c6-6b1f7420016a"
      unitRef="usd">19757970</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTpjOGI5ZjExYTNlZjg0NDU3ODk5ZTY1Y2E0ODM1YTRmMy90YWJsZXJhbmdlOmM4YjlmMTFhM2VmODQ0NTc4OTllNjVjYTQ4MzVhNGYzXzEzLTQtMS0xLTM0Mzg0_c0fa4ae6-224b-4d5d-a96b-d4828cf2ae23"
      unitRef="usd">27040816</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:InterestPaidNet
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzItMi0xLTEtMzQzODQ_0c179874-2226-4e1e-9554-0e6b244685c8"
      unitRef="usd">523161</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzItNC0xLTEtMzQzODQ_524e8f21-a4ba-4344-8b11-c2fba33289be"
      unitRef="usd">63978</us-gaap:InterestPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzMtMi0xLTEtMzQzODQ_8c46aebd-7fc4-423d-97fc-2722604cd560"
      unitRef="usd">3300</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzMtNC0xLTEtMzQzODQ_faabf9eb-3a41-4287-9bf0-3bb4768febee"
      unitRef="usd">-327</us-gaap:IncomeTaxesPaidNet>
    <cpix:PurchasesOfIntangibleAssetsIncurredButNotYetPaid
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzUtMi0xLTEtMzQzODQ_02197945-af3e-4b45-8fb5-84bf43f02a48"
      unitRef="usd">-1803403</cpix:PurchasesOfIntangibleAssetsIncurredButNotYetPaid>
    <cpix:PurchasesOfIntangibleAssetsIncurredButNotYetPaid
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzUtNC0xLTEtMzQzODQ_8adab520-bee7-4875-b0ed-286bc4dcdaa9"
      unitRef="usd">-43471</cpix:PurchasesOfIntangibleAssetsIncurredButNotYetPaid>
    <us-gaap:DebtIssuanceCostsIncurredDuringNoncashOrPartialNoncashTransaction
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzYtMi0xLTEtMzQzODQ_de59117a-c2d3-41f0-8e46-dd640e49edf0"
      unitRef="usd">94689</us-gaap:DebtIssuanceCostsIncurredDuringNoncashOrPartialNoncashTransaction>
    <us-gaap:DebtIssuanceCostsIncurredDuringNoncashOrPartialNoncashTransaction
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzYtNC0xLTEtMzQzODQ_73e1e041-5af7-4c1a-a8cd-997e8caf0208"
      unitRef="usd">90512</us-gaap:DebtIssuanceCostsIncurredDuringNoncashOrPartialNoncashTransaction>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzctMi0xLTEtMzQzODQ_2bf79584-3611-40c4-876d-a5b5a0085934"
      unitRef="usd">4590978</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzctNC0xLTEtMzQzODQ_47196222-a12f-43c4-bc37-d6dacd46e369"
      unitRef="usd">0</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <cpix:CreditIssuedForMilestonePayable
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzgtMi0xLTEtNDIxMjM_63485aa9-b253-4897-8253-6a7e23833dd5"
      unitRef="usd">-1000000</cpix:CreditIssuedForMilestonePayable>
    <cpix:CreditIssuedForMilestonePayable
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzgtNC0xLTEtNDIyMDY_3b797934-cbf4-471f-868a-0cb1403d407e"
      unitRef="usd">0</cpix:CreditIssuedForMilestonePayable>
    <us-gaap:StockRedeemedOrCalledDuringPeriodValue
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzktMi0xLTEtNDIxMjM_52f813e1-6c28-4165-937a-c4fb5d3a7153"
      unitRef="usd">399600</us-gaap:StockRedeemedOrCalledDuringPeriodValue>
    <us-gaap:StockRedeemedOrCalledDuringPeriodValue
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODEvZnJhZzpjZDI0YWE2MTAwNjU0NWNjYmU2YTkxMDMyOWQ0NmIzYS90YWJsZTo2ZTc5NjJmMzI2YzU0NzRiOTMwNzM0YjBmOTJhNzVlOS90YWJsZXJhbmdlOjZlNzk2MmYzMjZjNTQ3NGI5MzA3MzRiMGY5MmE3NWU5XzktNC0xLTEtNDIyMDY_9c681ef7-67f5-4f26-a781-808a1eaf8c4d"
      unitRef="usd">0</us-gaap:StockRedeemedOrCalledDuringPeriodValue>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i963f0ace48ae4299a000f7fd5b7c18c5_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI2LTItMS0xLTM0Mzg0_e21d682b-cf85-46c2-8536-95f168da3825"
      unitRef="shares">14988429</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i963f0ace48ae4299a000f7fd5b7c18c5_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI2LTQtMS0xLTM0Mzg0_6b4c9d31-6442-4408-b761-42ebd53677b8"
      unitRef="usd">49121523</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ia40cff38220f4a42a215676712cd7975_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI2LTYtMS0xLTM0Mzg0_fed9facc-5511-4ec9-b956-92b3bda35325"
      unitRef="usd">-2131013</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i4f553aa99c0e4216aa251a6245b1cab1_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI2LTgtMS0xLTM0Mzg0_4cbc2eb9-882d-46c5-bb20-a36dad4cb7e7"
      unitRef="usd">-117116</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i6b1f58f544414d679bba8a83be98bb54_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI2LTEwLTEtMS0zNDM4NA_06ed5fe5-18b5-4f9a-9c22-d19d9680b3c1"
      unitRef="usd">46873394</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLoss
      contextRef="ia770bc31d52a493aa78146feba302866_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI3LTYtMS0xLTM0Mzg0_9727cfe5-84ba-47b9-84ea-2d7b074a50e7"
      unitRef="usd">-3507587</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="ic4d8da0743ab4c0488940b1685dbba30_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI3LTgtMS0xLTM0Mzg0_4b9419a0-3c36-452d-ab55-36a4552a2b84"
      unitRef="usd">-95212</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:ProfitLoss
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI3LTEwLTEtMS0zNDM4NA_5e1764f6-3a57-4658-ad70-fef8e613a27a"
      unitRef="usd">-3602799</us-gaap:ProfitLoss>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="i335f36ffc1e6419c9c6d44aa4dfbab4e_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI4LTItMS0xLTM0Mzg0_056e4d57-6913-493f-9a03-1e95790256af"
      unitRef="shares">192684</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i335f36ffc1e6419c9c6d44aa4dfbab4e_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI4LTQtMS0xLTM0Mzg0_bd8086be-0747-4202-9bbe-57df9a853f51"
      unitRef="usd">741867</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI4LTEwLTEtMS0zNDM4NA_a8e0ca43-8267-4908-92fe-6b4d852f3c6a"
      unitRef="usd">741867</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i335f36ffc1e6419c9c6d44aa4dfbab4e_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI5LTItMS0xLTM0Mzg0_ece52727-a001-4d35-a5e2-48d66139e4c4"
      unitRef="shares">438359</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i335f36ffc1e6419c9c6d44aa4dfbab4e_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI5LTQtMS0xLTM0Mzg0_830d8892-f399-4a5a-8d4b-7584a5caa41e"
      unitRef="usd">1410484</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzI5LTEwLTEtMS0zNDM4NA_28391fd4-eb6d-47fb-b4fd-3d0a80f83032"
      unitRef="usd">1410484</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i34f8ac4bf33e4693be58ae3e7731aca1_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMwLTItMS0xLTM0Mzg0_a69af357-e98e-4d35-b54e-3bdf378df58d"
      unitRef="shares">14742754</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i34f8ac4bf33e4693be58ae3e7731aca1_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMwLTQtMS0xLTM0Mzg0_8684f711-5ed4-475a-88cc-78df33ac7a15"
      unitRef="usd">48452906</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="id569c4eed8f24390a0083034cd6006fd_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMwLTYtMS0xLTM0Mzg0_6631f39c-dcdd-4d8c-be44-595676fbb3af"
      unitRef="usd">-5638600</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ie04970d0133c449fb025dee41a90d071_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMwLTgtMS0xLTM0Mzg0_3d2a5ec6-4034-4f53-a874-c602a3ce6716"
      unitRef="usd">-212328</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMwLTEwLTEtMS0zNDM4NA_ba1f9625-8e3e-4ceb-9d65-fb62aef3a5b5"
      unitRef="usd">42601978</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLoss
      contextRef="iffb757a4c3914eb9b95796ad9e20eacc_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMxLTYtMS0xLTM2MjY2_82b52deb-3c4b-4ffe-b478-8a808e4156c5"
      unitRef="usd">-5570241</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="i1705f3f062cc44839738fe486e114ad6_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMxLTgtMS0xLTM2MjY2_04972fe0-b9de-4d53-9cc6-b0899e35a446"
      unitRef="usd">-79798</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:ProfitLoss
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMxLTEwLTEtMS0zNjI2Ng_309391ea-8dba-4b6e-a571-a1e7c25ef994"
      unitRef="usd">-5650039</us-gaap:ProfitLoss>
    <us-gaap:StockRedeemedOrCalledDuringPeriodShares
      contextRef="i72718240c04b4ec2ba4b82ad98b68277_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMyLTItMS0xLTM2MjY2_8611fe5a-5f2d-43d7-9433-a80951acc8f5"
      unitRef="shares">180000</us-gaap:StockRedeemedOrCalledDuringPeriodShares>
    <us-gaap:StockRedeemedOrCalledDuringPeriodValue
      contextRef="i72718240c04b4ec2ba4b82ad98b68277_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMyLTQtMS0xLTM2MjY2_39a8dc72-2f43-469c-b76c-4486d9ca4ace"
      unitRef="usd">399600</us-gaap:StockRedeemedOrCalledDuringPeriodValue>
    <us-gaap:StockRedeemedOrCalledDuringPeriodValue
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMyLTEwLTEtMS0zNjI2Ng_75aa48b9-9510-4cd2-bf8c-1fd513c3e6b7"
      unitRef="usd">399600</us-gaap:StockRedeemedOrCalledDuringPeriodValue>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="i72718240c04b4ec2ba4b82ad98b68277_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMzLTItMS0xLTM2MjY2_9e77c040-6e8f-4b56-bcba-aa02d4e39417"
      unitRef="shares">171655</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i72718240c04b4ec2ba4b82ad98b68277_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMzLTQtMS0xLTM2MjY2_733af5bc-33ee-4c9d-a0f4-1d344da07c9f"
      unitRef="usd">447503</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzMzLTEwLTEtMS0zNjI2Ng_9f952b50-a526-471b-9a4b-0d33409755f9"
      unitRef="usd">447503</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i72718240c04b4ec2ba4b82ad98b68277_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzM0LTItMS0xLTM2MjY2_98476a2c-879c-40e9-97bb-bc5feeaeeef9"
      unitRef="shares">367793</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i72718240c04b4ec2ba4b82ad98b68277_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzM0LTQtMS0xLTM2MjY2_446c3e01-b254-4a36-b341-e055c704c9bf"
      unitRef="usd">1025836</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzM0LTEwLTEtMS0zNjI2Ng_3be0a2d3-28c4-4058-a21f-c8911366bac5"
      unitRef="usd">1025836</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i3cb948d137eb4bae9cb3425ba6c840db_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzM1LTItMS0xLTM2MjY2_43a03f0d-9d63-4426-8ad3-6f1662ec731a"
      unitRef="shares">14366616</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i3cb948d137eb4bae9cb3425ba6c840db_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzM1LTQtMS0xLTM2MjY2_9392c0e8-5214-4af1-9f90-0bc9fff6504f"
      unitRef="usd">47474973</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ibdae3b5e1dd2405b904488b32eb4db3b_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzM1LTYtMS0xLTM2MjY2_48bb0f5e-585c-4d2c-b726-f071ada83581"
      unitRef="usd">-11208841</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i4d4b30bb244846a8ba4078cdae06919f_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzM1LTgtMS0xLTM2MjY2_daf019e7-6f96-4ffa-8d96-f5d732f74f83"
      unitRef="usd">-292126</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xODQvZnJhZzo0OTU1OTI3OWQ1OGQ0OThiODViODQzYWI5YmYxYjdkYS90YWJsZTpmMzFjZjBhZTgwNWQ0MmNhYjlkZDM3OGM0MjhiNjBhZi90YWJsZXJhbmdlOmYzMWNmMGFlODA1ZDQyY2FiOWRkMzc4YzQyOGI2MGFmXzM1LTEwLTEtMS0zNjI2Ng_01dd64f2-9db3-4d45-b73e-3fc9ab819c5c"
      unitRef="usd">35974006</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzMyNzA_9443dbca-27f7-452f-b5d3-fdc8e4f2252d">Organization&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cumberland Pharmaceuticals Inc. (&#x201c;Cumberland,&#x201d; the &#x201c;Company,&#x201d; or as used in the context of &#x201c;we,&#x201d; &#x201c;us,&#x201d; or &#x201c;our&#x201d;) is a specialty pharmaceutical company focused on the acquisition, development and commercialization of branded prescription products.  The Company's primary target markets are hospital acute care, gastroenterology  and oncology. These medical specialties are characterized by relatively concentrated prescriber bases that the Company believes can be penetrated effectively by small, targeted sales forces. Cumberland is dedicated to providing innovative products that improve quality of care for patients and address unmet or poorly met medical needs.  The Company promotes its approved products through its hospital, field and oncology sales forces in the United States and is establishing a network of international partners to bring its medicines to patients in their countries.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cumberland focuses its resources on maximizing the commercial potential of its products, as well as developing new product candidates, and has both internal development and commercial capabilities. The Company&#x2019;s products are manufactured by third parties, which are overseen by Cumberland&#x2019;s quality and manufacturing professionals. The Company works closely with its third-party distribution partners to make its products available in the United States.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In order to build a pipeline of early-stage product candidates, the Company formed a subsidiary, Cumberland Emerging Technologies, Inc. ("CET"), which teams with universities and other research organizations to help advance scientific discoveries from the laboratory to the marketplace.  In 2014, the Company organized equity financing to recapitalize and strengthen the financial position of CET including an investment of approximately $1.0 million from Gloria Pharmaceuticals Co., Ltd. (&#x201c;Gloria&#x201d;).  As a result, Gloria received shares in CET and joined the CET ownership group. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In April, 2019, CET entered into an agreement with HongKong WinHealth Pharma Group Co. Limited ("WinHealth") &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;whereby WinHealth made a&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; $1.0&#160;million &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;investment through the purchase of shares of CET stock. As part of the agreement, WinHealth obtained a Board position at CET and the first opportunity to license CET products for the Chinese market. In connection with WinHealth's investment in CET, Cumberland also made an additional $1.0 million&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;investment in CET.  Cumberland purchased additional CET shares through contribution of $0.3&#160;million in cash and a conversion of $0.7&#160;million in intercompany loans payable.  Upon completion of the additional investment by WinHealth and Cumberland, Gloria Pharmaceuticals returned its shares in CET in exchange for &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; $0.8 million &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;that was funded during 2020.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's ownership in CET is now 85% while the remaining interest is owned by WinHealth, Vanderbilt University and the Tennessee Technology Development Corporation. The operating results of CET allocated to noncontrolling interests in the consolidated statements of operations were  $79,798 and $95,212 for the years ended December&#160;31, 2022 and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Effective January&#160;1, 2007, the Company formed a wholly-owned subsidiary, Cumberland Pharma Sales Corp. ("CPSC").  CPSC is the subsidiary that employs the Company's hospital and field sales force personnel.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2017, the Company formed the Cumberland Pharma Foundation (the "Foundation") to serve as a vehicle to facilitate the ongoing philanthropic endeavors of Cumberland Pharmaceuticals Inc. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Foundation was formed as a nonprofit corporation designed to qualify as a tax-exempt organization pursuant to Section 501(a) of the Internal Revenue Code. The Foundation&#x2019;s Board of Directors is comprised of Cumberland Pharmaceuticals executives who are responsible for overseeing the Foundation&#x2019;s ongoing activities including charitable contributions. &lt;/span&gt;&lt;/div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2018, Cumberland provided a grant of 50,000 shares of the Company's common stock to the Foundation. The shares will address the ongoing financial needs of the Foundation.  The organization also plans to hold a portion of the shares for long-term appreciation. The Foundation maintains separate financial statements and its ongoing operations will not impact the financial statements of Cumberland Pharmaceuticals. Initial annual grants by the Foundation have been and are expected to remain consistent with the historic level of contributions made by Cumberland Pharmaceuticals.  During 2019, Cumberland Pharmaceuticals committed approximately $50,000 in cash contributions that were paid to the Foundation during 2020.  Likewise, during 2020, the Company committed approximately $25,000 in cash contributions paid to the Foundation during 2021. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2022, the Company made a $25,000 cash contribution to the Foundation.&lt;/span&gt;</us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock>
    <us-gaap:NoncontrollingInterestIncreaseFromSaleOfParentEquityInterest
      contextRef="ib9062e0d132343aaa03943a47c77e779_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzE4MjU_99ba9d41-77af-4e6b-b939-6a0e0458d64a"
      unitRef="usd">1000000</us-gaap:NoncontrollingInterestIncreaseFromSaleOfParentEquityInterest>
    <cpix:SubsidiaryInvestmentPurchaseOfShares
      contextRef="ifbd696f587e24eb997ec609f8ce82517_I20190430"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzIwOTE_14c8bd48-b5c0-4d50-88c4-2aab2b0b5f71"
      unitRef="usd">1000000</cpix:SubsidiaryInvestmentPurchaseOfShares>
    <cpix:SubsidiaryInvestmentPurchaseOfShares
      contextRef="ifbd696f587e24eb997ec609f8ce82517_I20190430"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzIzNzg_0aca40ab-4dd3-4a66-aeff-80a102da0179"
      unitRef="usd">1000000</cpix:SubsidiaryInvestmentPurchaseOfShares>
    <cpix:ContributionOfCashAdditionalSharesPurchased
      contextRef="i7002a7773f304b60a1fb957d9bf22167_D20190401-20190430"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzI0Njg_92fb6f13-c13a-4730-8d42-5a7cc02069e0"
      unitRef="usd">300000</cpix:ContributionOfCashAdditionalSharesPurchased>
    <cpix:IntercompanyLoansPayableConvertedAmount
      contextRef="ifbd696f587e24eb997ec609f8ce82517_I20190430"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzI0OTk_eb7eb769-fd03-40a7-baf2-07bef1de8b19"
      unitRef="usd">700000</cpix:IntercompanyLoansPayableConvertedAmount>
    <cpix:SubsidiaryInvestmentPaymentsForReturnOfCapital
      contextRef="id417cd67920147a1928abf32d83fb11f_D20190401-20190430"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzI2NzU_2fcbf77b-3a7c-4433-a4e2-6ae4a9512970"
      unitRef="usd">800000</cpix:SubsidiaryInvestmentPaymentsForReturnOfCapital>
    <us-gaap:MinorityInterestOwnershipPercentageByParent
      contextRef="i6ed29773e4754bd1a441c809e5231f15_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzI3NDc_02dd2402-fa9e-41c2-8daa-a41b31871fbe"
      unitRef="number">0.85</us-gaap:MinorityInterestOwnershipPercentageByParent>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzI5OTk_e5fa013d-74a1-4eba-9af8-274c51e6d2f6"
      unitRef="usd">-79798</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzMwMDQ_00287421-6934-476d-a4d3-2cb216b37593"
      unitRef="usd">-95212</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <cpix:SharebasedCompensationCharitableContributionofSharesShares
      contextRef="i6c780a0c3e87440c8eb1928bb0ce5f86_D20180101-20181231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzQ4NDA_e13e060e-6e04-4173-a00f-2871a1b5acc6"
      unitRef="shares">50000</cpix:SharebasedCompensationCharitableContributionofSharesShares>
    <cpix:ShareBasedCompensationCharitableContributionOfSharesCommittedCashContributions
      contextRef="i920d5ee9a6184682bc7bf8c05423756f_D20190101-20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzQ4NDQ_da967638-58ef-4064-bb08-4394b47f6602"
      unitRef="usd">50000</cpix:ShareBasedCompensationCharitableContributionOfSharesCommittedCashContributions>
    <cpix:ShareBasedCompensationCharitableContributionOfSharesCommittedCashContributions
      contextRef="i478ad941e6444190835fbd70e6a0fda2_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzQ4NDg_26c2346d-7f27-4c93-a0f4-b5d02b7c10e2"
      unitRef="usd">25000</cpix:ShareBasedCompensationCharitableContributionOfSharesCommittedCashContributions>
    <cpix:ShareBasedCompensationCharitableContributionOfSharesCashContributions
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTAvZnJhZzo5ZmM3NmI2ZGVlOTQ0NjFjOWI0MWNjOTI3OGExMzc2Yy90ZXh0cmVnaW9uOjlmYzc2YjZkZWU5NDQ2MWM5YjQxY2M5Mjc4YTEzNzZjXzU0OTc1NTgxODc0Nw_1a2964f1-37a3-407c-8962-260e1fcd2112"
      unitRef="usd">25000</cpix:ShareBasedCompensationCharitableContributionOfSharesCashContributions>
    <us-gaap:SignificantAccountingPoliciesTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODE4_3ac6b3bf-994f-4e0b-9ab4-2846e1049086">Significant Accounting Policies&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Principles of Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The consolidated financial statements of the Company are stated in U.S. dollars and are prepared using U.S. generally accepted accounting principles. These financial statements include the accounts of the Company and its wholly and majority-owned subsidiaries. All significant intercompany transactions and accounts have been eliminated in consolidation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;COVID-19 Pandemic&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In early 2020, the U.S. declared a health care emergency following the outbreak of SARS-CoV-2, a novel strain of coronavirus that causes COVID-19, a respiratory illness. The Company has managed through the resulting COVID-19 pandemic, continuing to operate our business &#x2013; keeping facilities open and our organization intact. We moved quickly to ensure the health and safety of our team. We also maintained our ongoing compliance with the many laws and regulations that apply to us as a publicly traded pharmaceutical company.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Throughout the pandemic, Cumberland faced the same challenges affecting other companies that rely on hospital admissions and patient visits to drive revenue. Our business and our clinical studies were impacted, as fewer patients sought elective surgeries and our access to medical facilities was substantially limited. &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We carefully monitored our supply chain, including the flow of raw materials and the batches of finished products emerging from the facilities that manufacture our products. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Several of our brands were negatively impacted by the lockdowns and postponement of physician office visits and elective procedures. However, we are fortunate to have a diversified product portfolio that includes other brands that have delivered a strong performance during the pandemic.  Overall, we have been able to continue the delivery of our products while addressing the interests of our shareholders, employees, partners and community.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Use of Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of the consolidated financial statements in conformity with U.S. generally accepted accounting principles requires management of the Company to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent liabilities at the date of the consolidated financial statements and the reported amounts of revenues and expenses during the period.  Actual results could differ from those estimates under different assumptions and conditions.  The Company's most significant estimates include: (1) its allowances for chargebacks and accruals for rebates and product returns (2) the allowances for obsolescent or unmarketable inventory and (3) valuation of contingent consideration liability associated with business combinations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Segment Reporting&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has one operating segment which is specialty pharmaceutical products. Management has chosen to organize the Company based on the type of products sold. Operating segments are identified as components of an enterprise about which separate discrete financial information is evaluated by the chief operating decision maker, or decision-making group, in making decisions regarding resource allocation and assessing performance. The Company, which uses consolidated financial information in determining how to allocate resources and assess performance, evaluated that our specialty pharmaceutical products compete in similar economic markets and similar circumstances.  Substantially all of the Company&#x2019;s assets are located in the United States. Total revenues are primarily attributable to U.S.&#160;customers.  Net revenues from customers outside the United States were approximately $1.5 million and $2.2 million for the years ended December&#160;31, 2022 and 2021, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Fair Value of Financial Instruments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fair value of financial assets and liabilities is the price the Company would receive to sell an asset or pay to transfer a liability in an orderly transaction with a market participant at the measurement date.  The Company's fair value measurements follow the appropriate rules as well as the fair value hierarchy that prioritizes the information used to develop the measurements.  It applies whenever other guidance requires (or permits) assets or liabilities to be measured at fair value and gives the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1 measurements) and the lowest priority to unobservable inputs (Level 3 measurements). &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of the fair value hierarchy that prioritizes observable and unobservable inputs used to measure fair value into three broad levels is described below:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:72pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 1 -   Quoted prices for identical instruments in active markets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:72pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 2 -  Quoted prices for similar instruments in active markets; quoted prices for identical or similar instruments in markets that are not active; and model-derived valuations whose inputs are observable or whose significant value drivers are observable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:72pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 3 -    Significant inputs to the valuation model are unobservable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We maintain policies and procedures to value instruments using the best and most relevant data available. The following section describes the valuation methodologies we use to measure different financial instruments at fair value on a recurring basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s financial instruments include cash and cash equivalents, accounts receivable, accounts payable, accrued liabilities, contingent consideration liability and a revolving line of credit. The carrying values for cash and cash equivalents, accounts receivable, accounts payable and accrued liabilities approximate their fair values due to their short-term nature. The revolving line of credit has a variable interest rate, which approximates the current market rate.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's contingent consideration liability is a Level 3 fair value measurement that is updated on a recurring basis at each reporting period using a valuation model.  Consistent with Level 3 fair value measurements, there are significant inputs to the valuation model that are unobservable. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash and cash equivalents include highly liquid investments with original maturities of three months or less.  As of December&#160;31, 2022 and 2021, cash equivalents consist primarily of money market funds.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Accounts Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Trade accounts receivable are recorded at the invoiced amount.  The Company records allowances for amounts that could become uncollectible in the future based on historical experience, as well as amounts related to chargebacks and cash discounts. The Company reviews each customer balance to assess collection status.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The majority of the Company&#x2019;s products are distributed through independent pharmaceutical wholesalers.  The allowances against accounts receivable for chargebacks and discounts are determined on a product-by-product basis, and established by management as the Company&#x2019;s best estimate at the time of sale based on each product&#x2019;s historical experience adjusted to reflect known changes in the factors that impact such allowances. These allowances are established based on the contractual terms with direct and indirect customers and analyses of historical levels of chargebacks and discounts. The allowances in accounts receivable for chargebacks and cash discounts were $0.6 million at December&#160;31, 2022 and $0.3 million at December 31, 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other organizations, such as managed care providers, pharmacy benefit management companies and government agencies, may receive rebates from the Company based on either negotiated contracts to carry the Company&#x2019;s products or reimbursements for filled prescriptions. These entities are considered indirect customers of the Company. In conjunction with recognizing a sale to a wholesaler, revenues are reduced and accrued liabilities are increased by the Company&#x2019;s estimate of the rebate that may be claimed. Cash discounts are reductions to invoiced amounts offered to customers for payment within a specified period of time from the date of the invoice.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;The Company works closely with third parties to manufacture and package finished goods for sale.  Based on the customer relationship with the manufacturer or packager, the Company will either take title to finished goods at the time of shipment or at the time of arrival from the manufacturer.  The Company then warehouses such goods until distribution and sale at third party facilities located in the U.S. and international locations.  Periodic inventory counts are made by the warehouse teams and by the Company on a regular basis.  In addition, the Company re-tests API inventory prior to use to confirm product expiration.  Inventories are stated at the lower of cost or net realizable value with cost determined using the first-in, first-out method.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company continually evaluates inventories for potential losses due to expired, short-dated or slow-moving inventory by comparing sales history and sales projections to the inventory on hand. When evidence indicates the carrying value of a product may not be recoverable, a charge is recorded to reduce the inventory to its current net realizable value.  The Company classifies the Vibativ inventories and ifetroban inventories that it does not expect to sell within one year as non-current inventories. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;padding-left: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:120%"&gt;Prepaid and Other Current Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Prepaid and other current assets consist of deferred offering costs, prepaid insurance premiums, prepaid consulting services, deposits and annual fees paid to the U.S. Food and Drug Administration ("FDA").  The Company expenses all prepaid and other current asset amounts as used or over the period of benefit primarily on a straight-line basis, as applicable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2017, the Company filed its Shelf Registration on Form S-3 with the SEC associated with the sale of up to $100&#160;million in corporate securities. The Shelf Registration was declared effective in January 2018. It also included an At the Market ("ATM") feature that allows the Company to sell common shares at market prices, along with an agreement with B. Riley FBR Inc. to support such a placement of shares. The Company filed an updated Form S-3 with the SEC in December 2020, which was declared effective in January 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On December 27, 2021, the Company filed a related prospectus supplement in connection with the sale and issuance of shares having an aggregate gross sales price of up to $19&#160;million.  The Company amended the At the Market Sales Agreement on December 27, 2021, in order to allow the Company to continue using its ATM feature to sell shares at market prices.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company intends to continue an ATM feature through B. Riley FBR, Inc. that would allow the Company to issue shares of its common stock. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has recorded deferred offering costs for payments directly related to the current Shelf Registration on Form S-3 that was completed during December 2021. These costs consist of legal and accounting fees that the Company has capitalized. Deferred costs associated with the Shelf Registration will be reclassified to additional paid in capital on a pro-rata basis as the Company completes sales of shares under the Shelf Registration.  The Company did not issue any shares under this ATM during the year ended December&#160;31, 2022. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Property and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment, including leasehold improvements, are stated at cost. Depreciation is recognized using the straight-line method over the estimated useful lives of the assets. Leasehold improvements are amortized over the shorter of the initial lease term plus renewal options, if reasonably assured, or the remaining useful life of the asset. Upon retirement or disposal of assets, any gain or loss is reflected as a component of operating income (loss) in the consolidated statement of operations.  Improvements that extend an asset&#x2019;s useful life are capitalized.  Repairs and maintenance costs are expensed as incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Intangible Assets and Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s intangible assets and goodwill consist of capitalized costs related to product and license rights, patents, trademarks and goodwill obtained in the Vibativ and Sancuso acquisitions. Goodwill is not amortized for financial reporting purposes, but is subject to impairment analysis at least annually.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The cost of acquiring product and license rights are capitalized at fair value at the date of acquisition for products that are approved by the FDA for commercial use.  These costs are amortized ratably over the estimated economic life of the product. The economic life is estimated based upon several factors.  This includes the term of the license agreement, the patent life or market exclusivity of the product and as well as  management's expectations of continued involvement with the product and the assessment of future sales, the future periods under which the product will be sold and the profitability of the product. This estimate is evaluated on a regular basis during the amortization period and adjusted if appropriate.  If there are any changes made to the useful life of the product and license rights, the costs associated with such a change, if any, will be capitalized and amortized over the revised useful life.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Capitalized patent costs consist of outside legal costs associated with obtaining and protecting patents on products that have been approved for marketing by the FDA. If it becomes probable that a patent will not be issued or a patent has been declared invalid, related costs associated with the patent application are expensed at the time such determination is made. All costs associated with obtaining patents for products that have not been approved for marketing by the FDA are expensed as incurred.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Amortization expense is recognized ratably over the following periods:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:63.141%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.869%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:2.960%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.871%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Product rights&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Estimated economic life&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;License rights&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Term of license agreement&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Patents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Life of patent&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Impairment of Long-Lived Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Long-lived assets, such as property and equipment, operating lease right-of-use assets and intangible assets subject to amortization, are reviewed for impairment whenever events or changes in circumstances indicate the carrying amount of an asset may not be recoverable. If events or circumstances arise that require a long-lived asset to be tested for potential impairment, the Company first compares undiscounted cash flows expected to be generated by the asset to its carrying value. If the carrying amount of the long-lived asset is not recoverable on an undiscounted cash flow basis, an impairment charge is recognized to the extent that the carrying value exceeds the fair value. Fair value is determined through various valuation techniques including quoted market prices, third-party independent appraisals and discounted cash flow models.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill and other indefinite lived intangible assets that are not subject to amortization are tested at least annually for impairment.  The impairment analysis for goodwill requires a comparison of fair value to the carrying value of the reporting unit.  The Company's goodwill was acquired in November 2018 with the Vibativ acquisition and in January 2022 with the Sancuso acquisition. As a result, the Vibativ and Sancuso components of the Company are the reporting units evaluated for goodwill impairment.  Cumberland determined the fair value of the reporting units through current and future estimated revenue and profitability of the product.  The Company recorded no impairment charges during 2022 and 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Joint Venture Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In August 2020, Cumberland entered into an agreement with WinHealth Investment (Singapore) Ltd creating WHC Biopharmaceuticals, Pte. Ltd. The joint venture, as a limited liability company, will focus on acquiring, developing, registering, and commercializing development stage and commercial stage biopharmaceuticals for China, Hong Kong and other Asian markets.  The agreement provides for initial investment from WinHealth in the form of a $0.2&#160;million equity contribution and an initial investment from Cumberland in the form of $0.2&#160;million convertible note. The joint venture will seek additional future capital from additional investors and has entered into exclusive option agreements to license intellectual property from both Cumberland Pharmaceuticals Inc. and Cumberland Emerging Technologies.   &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Net Product Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenues from product sales are recognized in the amount that reflects the consideration that we expect to receive for these goods.  Depending upon the shipping terms of the transaction, the revenue is recognized at the point where the customer obtains control of the goods and we satisfy our performance obligation.  This occurs upon either shipment of the product or arrival at its ship to destination.  Payment terms typically range from 30 to 60 days from date of shipment. The Company&#x2019;s net product revenue reflects the reduction from gross product revenue for estimated allowances for chargebacks, discounts and damaged goods, and reflects sales related accruals for rebates, coupons, product returns, and certain administrative and service fees. Significant judgments must be made in determining the transaction price for our sales of products related to these adjustments. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;margin-top:8pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Sales Rebates and Discounts&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The allowances against accounts receivable and accrued liabilities for chargebacks, discounts, service fees and expired product returns are determined on a product-by-product basis, and established by management as the Company&#x2019;s best estimate at the time of sale based on each product&#x2019;s historical experience adjusted to reflect known changes in the factors that impact such allowances. These allowances are established based on the contractual terms with direct and indirect customers and analyses of historical levels of chargebacks, discounts and returns of expired product.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other organizations, such as managed care providers, pharmacy benefit management companies and government agencies, may receive rebates from the Company based on either negotiated contracts to carry the Company&#x2019;s products or reimbursements for filled prescriptions. These entities are considered indirect customers of the Company. In conjunction with recognizing a sale to a wholesaler, sales revenues are reduced and accrued liabilities are increased by the Company&#x2019;s estimate of the rebate that may be claimed.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Sales Returns&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Consistent with industry practice, the Company maintains a return policy that allows customers to return product within a specified period prior to and subsequent to the expiration date. The Company&#x2019;s estimate of the provision for returns is based upon historical experience, expiration date by product as well as any other factor expected to impact future returns. Any changes in the assumptions used to estimate the provision for returns are recognized in the period those assumptions are changed.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Other Revenues&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other revenues primarily consist of income from grant funding programs, licensing agreements, leases and contract services.  Revenue related to grants is recognized when all conditions related to such grants have been met.  All other revenue is recognized when earned.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cost of Products Sold&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of products sold consists principally of the cost to acquire each unit of product sold, including in-bound freight expense as well as any adjustment in the net realizable value of inventory acquired in acquisitions. Cost of products sold also includes expenses associated with the reduction in the net realizable value of slow-moving or expired product.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Selling and Marketing Expense&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Selling and marketing expense consists primarily of expenses relating to the advertising, promotion, distribution and sale of products, including royalty expense, salaries and related costs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Distribution Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Distribution costs are expensed as incurred and are included as a component of selling and marketing expenses in the consolidated statements of operations. Distribution costs were as follows for the years ended December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.878%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:65.836%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.772%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.810%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.772%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.110%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Distribution costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;857,842&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;806,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:18pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Advertising Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Advertising costs are expensed as incurred and are included as a component of selling and marketing expenses in the consolidated statements of operations. Advertising costs were as follows for the years ended December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.878%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:65.836%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.772%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.810%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.772%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.110%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Advertising costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,927,041&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,927,864&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Research and Development&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Research and development costs are expensed in the period incurred. Research and development costs are comprised mainly of clinical trial expenses, salaries, wages and other related costs such as materials and supplies. Research and development expense includes activities performed by third-party providers participating in the Company&#x2019;s clinical studies. The Company accounts for these costs based on estimates of work performed, patients enrolled or fixed fees for services over the period of time the clinical trials are performed.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company provides for deferred taxes using the asset and liability approach. Under this method, deferred tax assets and liabilities are recognized for future tax consequences attributable to operating loss and tax credit carryforwards, as well as differences between the carrying amounts of existing assets and liabilities and their respective tax bases. The Company&#x2019;s principal differences are related to the timing of deductibility of certain items, such as inventory, depreciation, amortization and share-based compensation. Deferred tax assets and liabilities are measured using enacted statutory tax rates that are expected to apply to taxable income in the years such temporary differences are anticipated to be recovered or settled. The effect on deferred tax assets and liabilities of a change in tax rates is recognized in income in the period of enactment. The Company only recognizes income tax benefits associated with an income tax position in which it is &#x201c;more likely than not&#x201d; that the position would be sustained upon examination by the taxing authorities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In assessing the realizability of deferred tax assets, management considers whether some portion or all of the deferred tax assets will not be realized. The ultimate realization of deferred tax assets is dependent upon the generation of future taxable income during the periods in which those temporary differences become deductible. Management considers the scheduled reversal of existing temporary differences, projected future taxable income and tax planning strategies in making this assessment. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s accounting policy with respect to interest and penalties arising from income tax settlements is to recognize them as part of the provision for income taxes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Earnings (Loss) per Share&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic earnings (loss) per share is calculated by dividing net income (loss) attributable to common shareholders by the weighted-average number of shares outstanding. Except where the result would be antidilutive to income from continuing operations, diluted earnings (loss) per share is calculated by assuming the vesting of unvested restricted stock and the exercise of stock options and warrants and unrecognized compensation costs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Share-Based Payments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes compensation cost for all share-based payments issued, modified, repurchased or canceled. Depending on the nature of the vesting provisions, restricted stock awards are measured using either the fair value on the grant date or the fair value of common stock on the date the vesting provisions lapse. Prior to the lapse for those equity grants not valued on the grant date, the fair value is measured on the last day of the reporting period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Collaborative Agreements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company is a party to several collaborative arrangements with research institutions to identify and pursue promising pharmaceutical product candidates. The funding for these programs is primarily provided through Federal Small Business Administration (SBIR/STTR) and other grant awards. The Company has determined that these collaborative agreements, with the exception of the collaborative payment discussed in Note 3 do not meet the criteria for accounting under ASC Topic 808, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Collaborative Agreements&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The agreements do not specifically designate each party&#x2019;s rights and obligations to each other under the collaborative arrangements. Except for patent defense costs, expenses incurred by one party are not required to be reimbursed by the other party.  Expenses &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;incurred under these collaborative agreements are included in research and development expenses and funding received from grants are recorded as net revenues in the consolidated statements of operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Related Party Transactions&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In July 2022, Cumberland named Martin S. Brown Jr. to our Board of Directors. Mr. Brown is an attorney with over 30 years of corporate law experience who brings significant legal, public company, health care and civic experience to our board.  The Company relies on several law firms for legal advice, including the firm Martin is affiliated.  In 2022, the Company paid Martin's law firm $0.04&#160;million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;padding-left:18pt;text-align:justify"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Discontinued Operations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During May 2019, Cumberland entered into a Dissolution Agreement  ("Dissolution Agreement") with Clinigen Healthcare Limited ("Clinigen") in which the Company returned the exclusive rights to commercialize Ethyol&lt;/span&gt;&lt;span style="background-color:#ffffff;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;&#xae;&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; and Totect&lt;/span&gt;&lt;span style="background-color:#ffffff;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;&#xae;&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; in the United States to Clinigen. Under the terms of the Dissolution Agreement, Cumberland is no longer involved directly or indirectly with the distribution, marketing and promotion of either Ethyol or Totect or any competing products following December 31, 2019. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's exit from the products meets the accounting criteria to be reported as discontinued operations and the discontinued operating results have been reclassified in the financial statements and footnotes for all periods presented to reflect the discontinued status of these products. Refer to Note 19, for additional information.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;padding-left: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:120%"&gt;Recent Accounting Guidance &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recent Accounting Pronouncements Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In June 2016, the FASB issued ASU No. 2016-13, &#x201c;Financial Instruments-Credit Losses,&#x201d; which changes the impairment model for most financial assets and certain other instruments. For trade and other receivables, held-to-maturity debt securities, loans and other instruments, companies will be required to use a new forward-looking &#x201c;expected loss&#x201d; model that generally will result in the earlier recognition of allowances for losses. For available-for-sale debt securities with unrealized losses, companies will measure credit losses in a manner similar to what they do today, except that the losses will be recognized as allowances rather than as reductions in the amortized cost of the securities. Companies will have to disclose additional information, including information they use to track credit quality by year of origination for most financing receivables. Companies will apply the ASU&#x2019;s provisions as a cumulative-effect adjustment, if any, to retained earnings as of the beginning of the first reporting period in which the guidance is adopted.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Related to ASU No. 2016-13 discussed above, in May 2019, the FASB issued ASU 2019-05, "Financial Instruments-Credit Losses (Topic 326): Targeted Transition Relief" which provides transition relief for ASU 2016-13 by providing entities with an alternative to irrevocably electing the fair value option for eligible financial assets measured at amortized cost upon adoption of the new credit losses standard. Certain eligibility requirements must be met and the election must be applied on an instrument-by-instrument basis. The election is not available for either available-for-sale or held-to-maturity debt securities. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company adopted both ASU 2016-13 and ASU 2019-05 on January 1, 2023. The adoption of ASU 2016-13 and ASU 2019-05 are not expected to have a material impact on the Company&#x2019;s consolidated financial statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:ConsolidationPolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODI5_fc1f4b1a-4b2a-4248-93ea-cfa2df14975d">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Principles of Consolidation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The consolidated financial statements of the Company are stated in U.S. dollars and are prepared using U.S. generally accepted accounting principles. These financial statements include the accounts of the Company and its wholly and majority-owned subsidiaries. All significant intercompany transactions and accounts have been eliminated in consolidation.&lt;/span&gt;&lt;/div&gt;</us-gaap:ConsolidationPolicyTextBlock>
    <us-gaap:UseOfEstimates
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODE0_38f6d9c1-8cac-4d40-adf1-3ccb3e725326">Use of EstimatesThe preparation of the consolidated financial statements in conformity with U.S. generally accepted accounting principles requires management of the Company to make estimates and assumptions that affect the reported amounts of assets and liabilities and disclosure of contingent liabilities at the date of the consolidated financial statements and the reported amounts of revenues and expenses during the period.  Actual results could differ from those estimates under different assumptions and conditions.</us-gaap:UseOfEstimates>
    <us-gaap:SegmentReportingPolicyPolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODMy_15ca949c-074c-40d6-a961-8abb866def83">Segment ReportingThe Company has one operating segment which is specialty pharmaceutical products. Management has chosen to organize the Company based on the type of products sold. Operating segments are identified as components of an enterprise about which separate discrete financial information is evaluated by the chief operating decision maker, or decision-making group, in making decisions regarding resource allocation and assessing performance. The Company, which uses consolidated financial information in determining how to allocate resources and assess performance, evaluated that our specialty pharmaceutical products compete in similar economic markets and similar circumstances.  Substantially all of the Company&#x2019;s assets are located in the United States. Total revenues are primarily attributable to U.S.&#160;customers.</us-gaap:SegmentReportingPolicyPolicyTextBlock>
    <us-gaap:NumberOfOperatingSegments
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzM0Mjg_5bed2b35-0c4f-4ad4-92b2-fa02e9aa295f"
      unitRef="segment">1</us-gaap:NumberOfOperatingSegments>
    <us-gaap:Revenues
      contextRef="ia21564bd7ce142dcadc0c24df7ea1958_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzQzMDA_416fa45e-16e0-499f-9dc2-885397a2841c"
      unitRef="usd">1500000</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="ie03b356b24224df284680048170d1d18_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzQzMDU_6ce59c5d-b88b-453a-8e54-bdabee115258"
      unitRef="usd">2200000</us-gaap:Revenues>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODEw_dbba7cf6-62b5-4661-8594-0001366e4964">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Fair Value of Financial Instruments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fair value of financial assets and liabilities is the price the Company would receive to sell an asset or pay to transfer a liability in an orderly transaction with a market participant at the measurement date.  The Company's fair value measurements follow the appropriate rules as well as the fair value hierarchy that prioritizes the information used to develop the measurements.  It applies whenever other guidance requires (or permits) assets or liabilities to be measured at fair value and gives the highest priority to unadjusted quoted prices in active markets for identical assets or liabilities (Level 1 measurements) and the lowest priority to unobservable inputs (Level 3 measurements). &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of the fair value hierarchy that prioritizes observable and unobservable inputs used to measure fair value into three broad levels is described below:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:72pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 1 -   Quoted prices for identical instruments in active markets.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:72pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 2 -  Quoted prices for similar instruments in active markets; quoted prices for identical or similar instruments in markets that are not active; and model-derived valuations whose inputs are observable or whose significant value drivers are observable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:72pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 3 -    Significant inputs to the valuation model are unobservable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We maintain policies and procedures to value instruments using the best and most relevant data available. The following section describes the valuation methodologies we use to measure different financial instruments at fair value on a recurring basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s financial instruments include cash and cash equivalents, accounts receivable, accounts payable, accrued liabilities, contingent consideration liability and a revolving line of credit. The carrying values for cash and cash equivalents, accounts receivable, accounts payable and accrued liabilities approximate their fair values due to their short-term nature. The revolving line of credit has a variable interest rate, which approximates the current market rate.&lt;/span&gt;&lt;/div&gt;The Company's contingent consideration liability is a Level 3 fair value measurement that is updated on a recurring basis at each reporting period using a valuation model.  Consistent with Level 3 fair value measurements, there are significant inputs to the valuation model that are unobservable.</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODIy_f2c6a704-68a6-4304-be23-7c15fdbdd1fc">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash and cash equivalents include highly liquid investments with original maturities of three months or less.  As of December&#160;31, 2022 and 2021, cash equivalents consist primarily of money market funds.&lt;/span&gt;&lt;/div&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:TradeAndOtherAccountsReceivablePolicy
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODIz_262bb82a-fff2-480d-aac9-d2d7e8c12e3a">&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Accounts Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Trade accounts receivable are recorded at the invoiced amount.  The Company records allowances for amounts that could become uncollectible in the future based on historical experience, as well as amounts related to chargebacks and cash discounts. The Company reviews each customer balance to assess collection status.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The majority of the Company&#x2019;s products are distributed through independent pharmaceutical wholesalers.  The allowances against accounts receivable for chargebacks and discounts are determined on a product-by-product basis, and established by management as the Company&#x2019;s best estimate at the time of sale based on each product&#x2019;s historical experience adjusted to reflect known changes in the factors that impact such allowances. These allowances are established based on the contractual terms with direct and indirect customers and analyses of historical levels of chargebacks and discounts. The allowances in accounts receivable for chargebacks and cash discounts were $0.6 million at December&#160;31, 2022 and $0.3 million at December 31, 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other organizations, such as managed care providers, pharmacy benefit management companies and government agencies, may receive rebates from the Company based on either negotiated contracts to carry the Company&#x2019;s products or reimbursements for filled prescriptions. These entities are considered indirect customers of the Company. In conjunction with recognizing a sale to a wholesaler, revenues are reduced and accrued liabilities are increased by the Company&#x2019;s estimate of the rebate that may be claimed. Cash discounts are reductions to invoiced amounts offered to customers for payment within a specified period of time from the date of the invoice.&lt;/span&gt;&lt;/div&gt;</us-gaap:TradeAndOtherAccountsReceivablePolicy>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="i0ba80f17d75f466d9b1472a3319fada7_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2Xzc5MDk_3e471dee-be7a-419b-8e91-fac3b8ebbfaa"
      unitRef="usd">600000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent
      contextRef="i516902d591354e20a3baac1f1747a355_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2Xzc5MjI_42e46e5a-33e6-45d6-abc0-ef60e5db300f"
      unitRef="usd">300000</us-gaap:AllowanceForDoubtfulAccountsReceivableCurrent>
    <us-gaap:InventoryPolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODE1_64d51fb0-8002-45f1-8e00-0e96cef18596">&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Inventories&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;The Company works closely with third parties to manufacture and package finished goods for sale.  Based on the customer relationship with the manufacturer or packager, the Company will either take title to finished goods at the time of shipment or at the time of arrival from the manufacturer.  The Company then warehouses such goods until distribution and sale at third party facilities located in the U.S. and international locations.  Periodic inventory counts are made by the warehouse teams and by the Company on a regular basis.  In addition, the Company re-tests API inventory prior to use to confirm product expiration.  Inventories are stated at the lower of cost or net realizable value with cost determined using the first-in, first-out method.&lt;/span&gt;&lt;/div&gt;The Company continually evaluates inventories for potential losses due to expired, short-dated or slow-moving inventory by comparing sales history and sales projections to the inventory on hand. When evidence indicates the carrying value of a product may not be recoverable, a charge is recorded to reduce the inventory to its current net realizable value.  The Company classifies the Vibativ inventories and ifetroban inventories that it does not expect to sell within one year as non-current inventories.</us-gaap:InventoryPolicyTextBlock>
    <cpix:PrepaidsAndOtherCurrentAssetsPolicyPolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODA0_3014e112-8251-4dec-90e0-f38eb4ae4ca8">&lt;div style="margin-top:7pt;padding-left: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:120%"&gt;Prepaid and Other Current Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Prepaid and other current assets consist of deferred offering costs, prepaid insurance premiums, prepaid consulting services, deposits and annual fees paid to the U.S. Food and Drug Administration ("FDA").  The Company expenses all prepaid and other current asset amounts as used or over the period of benefit primarily on a straight-line basis, as applicable.&lt;/span&gt;&lt;/div&gt;</cpix:PrepaidsAndOtherCurrentAssetsPolicyPolicyTextBlock>
    <cpix:StockIssuedDuringPeriodShelfRegistrationProceedsFromSaleofCorporateSecurities
      contextRef="i7cfbfa92c9f74d5d8ecb902cacdb2307_D20180101-20180131"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzEwMzQw_ca0a6021-6d9f-4e53-98b3-400322efc24b"
      unitRef="usd">100000000</cpix:StockIssuedDuringPeriodShelfRegistrationProceedsFromSaleofCorporateSecurities>
    <cpix:StockIssuedDuringPeriodShelfRegistrationProceedsFromSaleofCorporateSecurities
      contextRef="if8074777558e4350be02e8d826a67f22_D20211227-20211227"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzEwOTE3_a37d79f2-46d2-4319-83e3-d947554f934f"
      unitRef="usd">19000000</cpix:StockIssuedDuringPeriodShelfRegistrationProceedsFromSaleofCorporateSecurities>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODE5_2f9d4d9a-2327-4d22-920f-886d5a98c9d2">&lt;div style="margin-top:7pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Property and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment, including leasehold improvements, are stated at cost. Depreciation is recognized using the straight-line method over the estimated useful lives of the assets. Leasehold improvements are amortized over the shorter of the initial lease term plus renewal options, if reasonably assured, or the remaining useful life of the asset. Upon retirement or disposal of assets, any gain or loss is reflected as a component of operating income (loss) in the consolidated statement of operations.  Improvements that extend an asset&#x2019;s useful life are capitalized.  Repairs and maintenance costs are expensed as incurred.&lt;/span&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:IntangibleAssetsFiniteLivedPolicy
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODA1_7cda8ede-fe6e-4353-8763-34c22a7f3a9a">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Intangible Assets and Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s intangible assets and goodwill consist of capitalized costs related to product and license rights, patents, trademarks and goodwill obtained in the Vibativ and Sancuso acquisitions. Goodwill is not amortized for financial reporting purposes, but is subject to impairment analysis at least annually.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The cost of acquiring product and license rights are capitalized at fair value at the date of acquisition for products that are approved by the FDA for commercial use.  These costs are amortized ratably over the estimated economic life of the product. The economic life is estimated based upon several factors.  This includes the term of the license agreement, the patent life or market exclusivity of the product and as well as  management's expectations of continued involvement with the product and the assessment of future sales, the future periods under which the product will be sold and the profitability of the product. This estimate is evaluated on a regular basis during the amortization period and adjusted if appropriate.  If there are any changes made to the useful life of the product and license rights, the costs associated with such a change, if any, will be capitalized and amortized over the revised useful life.&lt;/span&gt;&lt;/div&gt;Capitalized patent costs consist of outside legal costs associated with obtaining and protecting patents on products that have been approved for marketing by the FDA. If it becomes probable that a patent will not be issued or a patent has been declared invalid, related costs associated with the patent application are expensed at the time such determination is made. All costs associated with obtaining patents for products that have not been approved for marketing by the FDA are expensed as incurred.</us-gaap:IntangibleAssetsFiniteLivedPolicy>
    <cpix:ScheduleOfFiniteLivedIntangibleAssetsUsefulLivesTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODI1_40c25816-0952-45a2-883c-58f59a1a4217">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Amortization expense is recognized ratably over the following periods:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:63.141%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.869%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:2.960%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.871%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Product rights&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Estimated economic life&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;License rights&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Term of license agreement&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Patents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Life of patent&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</cpix:ScheduleOfFiniteLivedIntangibleAssetsUsefulLivesTableTextBlock>
    <cpix:FiniteLivedIntangibleAssetsUsefulLivesTextual
      contextRef="icc21cd41019b4937823097e3a64ff8a3_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90YWJsZTphOTg3YzBkZWZmZjk0OGY5YjY5NTYzMDU3NjcxYTkzYy90YWJsZXJhbmdlOmE5ODdjMGRlZmZmOTQ4ZjliNjk1NjMwNTc2NzFhOTNjXzAtMi0xLTEtMzQzODQ_725b0238-e56a-4d6e-93b6-36fadbdcdca2">Estimated economic life</cpix:FiniteLivedIntangibleAssetsUsefulLivesTextual>
    <cpix:FiniteLivedIntangibleAssetsUsefulLivesTextual
      contextRef="i3025fb68648c4df5b3dc39a998179c33_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90YWJsZTphOTg3YzBkZWZmZjk0OGY5YjY5NTYzMDU3NjcxYTkzYy90YWJsZXJhbmdlOmE5ODdjMGRlZmZmOTQ4ZjliNjk1NjMwNTc2NzFhOTNjXzEtMi0xLTEtMzQzODQ_841cc257-a6ad-421c-b54f-92770b575e46">Term of license agreement</cpix:FiniteLivedIntangibleAssetsUsefulLivesTextual>
    <cpix:FiniteLivedIntangibleAssetsUsefulLivesTextual
      contextRef="i4c75d11680284d93969ed668e797eebc_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90YWJsZTphOTg3YzBkZWZmZjk0OGY5YjY5NTYzMDU3NjcxYTkzYy90YWJsZXJhbmdlOmE5ODdjMGRlZmZmOTQ4ZjliNjk1NjMwNTc2NzFhOTNjXzItMi0xLTEtMzQzODQ_62ffe953-a25f-45a4-9747-9807af43e3d9">Life of patent</cpix:FiniteLivedIntangibleAssetsUsefulLivesTextual>
    <us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODMw_f50bb195-0da7-4afc-8921-7db95ab819ce">Impairment of Long-Lived AssetsLong-lived assets, such as property and equipment, operating lease right-of-use assets and intangible assets subject to amortization, are reviewed for impairment whenever events or changes in circumstances indicate the carrying amount of an asset may not be recoverable. If events or circumstances arise that require a long-lived asset to be tested for potential impairment, the Company first compares undiscounted cash flows expected to be generated by the asset to its carrying value. If the carrying amount of the long-lived asset is not recoverable on an undiscounted cash flow basis, an impairment charge is recognized to the extent that the carrying value exceeds the fair value. Fair value is determined through various valuation techniques including quoted market prices, third-party independent appraisals and discounted cash flow models.</us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzE1OTE3_392ce18e-4393-4a7d-b5c5-1ab28046bc66"
      unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:GoodwillImpairmentLoss
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzE1OTE3_a1d81838-6bbb-45a0-aa6a-1a1cfb144039"
      unitRef="usd">0</us-gaap:GoodwillImpairmentLoss>
    <us-gaap:InvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures
      contextRef="i3aa1891de07e463882de10e63f32527d_I20200831"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzE2NDI3_74525836-ebe9-4f2a-b871-0fe183d15de7"
      unitRef="usd">200000</us-gaap:InvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures>
    <us-gaap:InvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures
      contextRef="i3aa1891de07e463882de10e63f32527d_I20200831"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzE2NTA3_855e00c8-8a22-40da-9ec1-ccb532d350dc"
      unitRef="usd">200000</us-gaap:InvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODA2_806f563b-64a8-4a66-9764-473e88c9567c">&lt;div style="margin-bottom:8pt;margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Net Product Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Revenues from product sales are recognized in the amount that reflects the consideration that we expect to receive for these goods.  Depending upon the shipping terms of the transaction, the revenue is recognized at the point where the customer obtains control of the goods and we satisfy our performance obligation.  This occurs upon either shipment of the product or arrival at its ship to destination.  Payment terms typically range from 30 to 60 days from date of shipment. The Company&#x2019;s net product revenue reflects the reduction from gross product revenue for estimated allowances for chargebacks, discounts and damaged goods, and reflects sales related accruals for rebates, coupons, product returns, and certain administrative and service fees. Significant judgments must be made in determining the transaction price for our sales of products related to these adjustments. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;margin-top:8pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Sales Rebates and Discounts&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The allowances against accounts receivable and accrued liabilities for chargebacks, discounts, service fees and expired product returns are determined on a product-by-product basis, and established by management as the Company&#x2019;s best estimate at the time of sale based on each product&#x2019;s historical experience adjusted to reflect known changes in the factors that impact such allowances. These allowances are established based on the contractual terms with direct and indirect customers and analyses of historical levels of chargebacks, discounts and returns of expired product.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other organizations, such as managed care providers, pharmacy benefit management companies and government agencies, may receive rebates from the Company based on either negotiated contracts to carry the Company&#x2019;s products or reimbursements for filled prescriptions. These entities are considered indirect customers of the Company. In conjunction with recognizing a sale to a wholesaler, sales revenues are reduced and accrued liabilities are increased by the Company&#x2019;s estimate of the rebate that may be claimed.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Sales Returns&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Consistent with industry practice, the Company maintains a return policy that allows customers to return product within a specified period prior to and subsequent to the expiration date. The Company&#x2019;s estimate of the provision for returns is based upon historical experience, expiration date by product as well as any other factor expected to impact future returns. Any changes in the assumptions used to estimate the provision for returns are recognized in the period those assumptions are changed.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Other Revenues&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other revenues primarily consist of income from grant funding programs, licensing agreements, leases and contract services.  Revenue related to grants is recognized when all conditions related to such grants have been met.  All other revenue is recognized when earned.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <us-gaap:CostOfSalesPolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODE2_3e2d23f0-f56f-4f1b-8a52-c7da2c840ab0">&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cost of Products Sold&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of products sold consists principally of the cost to acquire each unit of product sold, including in-bound freight expense as well as any adjustment in the net realizable value of inventory acquired in acquisitions. Cost of products sold also includes expenses associated with the reduction in the net realizable value of slow-moving or expired product.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Selling and Marketing Expense&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Selling and marketing expense consists primarily of expenses relating to the advertising, promotion, distribution and sale of products, including royalty expense, salaries and related costs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Distribution Costs&lt;/span&gt;&lt;/div&gt;Distribution costs are expensed as incurred and are included as a component of selling and marketing expenses in the consolidated statements of operations.</us-gaap:CostOfSalesPolicyTextBlock>
    <cpix:ScheduleOfDistributionCostsTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODEy_35718620-f413-401c-8573-1f46483fcb55">Distribution costs were as follows for the years ended December 31:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.878%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:65.836%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.772%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.810%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.772%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.110%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Distribution costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;857,842&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;806,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;</cpix:ScheduleOfDistributionCostsTableTextBlock>
    <us-gaap:ProductionAndDistributionCosts
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90YWJsZTo1ZGMzYWViMDc5OTM0NzBjOTMzNWJmZjA5ODkyNTkxZC90YWJsZXJhbmdlOjVkYzNhZWIwNzk5MzQ3MGM5MzM1YmZmMDk4OTI1OTFkXzItMi0xLTEtMzQzODQ_dc6a10ea-72c6-46e0-a172-1b247e7080b5"
      unitRef="usd">857842</us-gaap:ProductionAndDistributionCosts>
    <us-gaap:ProductionAndDistributionCosts
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90YWJsZTo1ZGMzYWViMDc5OTM0NzBjOTMzNWJmZjA5ODkyNTkxZC90YWJsZXJhbmdlOjVkYzNhZWIwNzk5MzQ3MGM5MzM1YmZmMDk4OTI1OTFkXzItNC0xLTEtMzQzODQ_cb06a171-6462-4484-9fa6-bdc0395a0d03"
      unitRef="usd">806311</us-gaap:ProductionAndDistributionCosts>
    <us-gaap:AdvertisingCostsPolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODA4_95316f6b-1ec0-42e3-abff-88e40134a1b2">Advertising CostsAdvertising costs are expensed as incurred and are included as a component of selling and marketing expenses in the consolidated statements of operations.</us-gaap:AdvertisingCostsPolicyTextBlock>
    <cpix:ScheduleOfAdvertisingCostsTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODEz_dcb32322-35c3-4a56-bf8f-43dddb848c04">Advertising costs were as follows for the years ended December 31:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:98.878%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:65.836%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.772%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.810%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.772%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.110%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Advertising costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,927,041&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,927,864&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;</cpix:ScheduleOfAdvertisingCostsTableTextBlock>
    <us-gaap:AdvertisingExpense
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90YWJsZTpiZmMzOTVlNzE1ZWQ0YWRmOTVkZTc5ZDA2ZjA2MzUxYy90YWJsZXJhbmdlOmJmYzM5NWU3MTVlZDRhZGY5NWRlNzlkMDZmMDYzNTFjXzItMi0xLTEtMzQzODQ_0f7273a2-b96f-494b-9dd5-b4e34ac58a1e"
      unitRef="usd">2927041</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90YWJsZTpiZmMzOTVlNzE1ZWQ0YWRmOTVkZTc5ZDA2ZjA2MzUxYy90YWJsZXJhbmdlOmJmYzM5NWU3MTVlZDRhZGY5NWRlNzlkMDZmMDYzNTFjXzItNC0xLTEtMzQzODQ_f7f43824-a9ad-41e3-ae91-ed889407c736"
      unitRef="usd">1927864</us-gaap:AdvertisingExpense>
    <us-gaap:ResearchAndDevelopmentExpensePolicy
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODE3_94ac3285-4277-4fed-b164-f5f85e1a43d7">&lt;div style="padding-left:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Research and Development&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Research and development costs are expensed in the period incurred. Research and development costs are comprised mainly of clinical trial expenses, salaries, wages and other related costs such as materials and supplies. Research and development expense includes activities performed by third-party providers participating in the Company&#x2019;s clinical studies. The Company accounts for these costs based on estimates of work performed, patients enrolled or fixed fees for services over the period of time the clinical trials are performed.&lt;/span&gt;&lt;/div&gt;</us-gaap:ResearchAndDevelopmentExpensePolicy>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODI2_9a344509-dd54-42a1-8246-fb2aaa90377b">&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company provides for deferred taxes using the asset and liability approach. Under this method, deferred tax assets and liabilities are recognized for future tax consequences attributable to operating loss and tax credit carryforwards, as well as differences between the carrying amounts of existing assets and liabilities and their respective tax bases. The Company&#x2019;s principal differences are related to the timing of deductibility of certain items, such as inventory, depreciation, amortization and share-based compensation. Deferred tax assets and liabilities are measured using enacted statutory tax rates that are expected to apply to taxable income in the years such temporary differences are anticipated to be recovered or settled. The effect on deferred tax assets and liabilities of a change in tax rates is recognized in income in the period of enactment. The Company only recognizes income tax benefits associated with an income tax position in which it is &#x201c;more likely than not&#x201d; that the position would be sustained upon examination by the taxing authorities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In assessing the realizability of deferred tax assets, management considers whether some portion or all of the deferred tax assets will not be realized. The ultimate realization of deferred tax assets is dependent upon the generation of future taxable income during the periods in which those temporary differences become deductible. Management considers the scheduled reversal of existing temporary differences, projected future taxable income and tax planning strategies in making this assessment. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s accounting policy with respect to interest and penalties arising from income tax settlements is to recognize them as part of the provision for income taxes.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODI3_89097ba2-f3fd-4870-b41f-87691c8eba2a">&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Earnings (Loss) per Share&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic earnings (loss) per share is calculated by dividing net income (loss) attributable to common shareholders by the weighted-average number of shares outstanding. Except where the result would be antidilutive to income from continuing operations, diluted earnings (loss) per share is calculated by assuming the vesting of unvested restricted stock and the exercise of stock options and warrants and unrecognized compensation costs.&lt;/span&gt;&lt;/div&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODMx_fd013424-46f8-471a-b947-4d48094e059e">&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Share-Based Payments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes compensation cost for all share-based payments issued, modified, repurchased or canceled. Depending on the nature of the vesting provisions, restricted stock awards are measured using either the fair value on the grant date or the fair value of common stock on the date the vesting provisions lapse. Prior to the lapse for those equity grants not valued on the grant date, the fair value is measured on the last day of the reporting period.&lt;/span&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:CollaborativeArrangementAccountingPolicy
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODI4_2c0fe5ca-f70f-48df-8418-730c8b8992bf">&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Collaborative Agreements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company is a party to several collaborative arrangements with research institutions to identify and pursue promising pharmaceutical product candidates. The funding for these programs is primarily provided through Federal Small Business Administration (SBIR/STTR) and other grant awards. The Company has determined that these collaborative agreements, with the exception of the collaborative payment discussed in Note 3 do not meet the criteria for accounting under ASC Topic 808, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Collaborative Agreements&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The agreements do not specifically designate each party&#x2019;s rights and obligations to each other under the collaborative arrangements. Except for patent defense costs, expenses incurred by one party are not required to be reimbursed by the other party.  Expenses &lt;/span&gt;&lt;/div&gt;incurred under these collaborative agreements are included in research and development expenses and funding received from grants are recorded as net revenues in the consolidated statements of operations.</us-gaap:CollaborativeArrangementAccountingPolicy>
    <us-gaap:RelatedPartyTransactionExpensesFromTransactionsWithRelatedParty
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="-4"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzU0OTc1NTg0NDI0Nw_37c9e544-8a59-42c2-9467-6e057eebec55"
      unitRef="usd">40000.00</us-gaap:RelatedPartyTransactionExpensesFromTransactionsWithRelatedParty>
    <us-gaap:DiscontinuedOperationsPolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzU0OTc1NTg0NDI0NQ_89bcbe8e-c34a-4aaa-8d39-6ab1a9537fd6">&lt;div style="margin-top:6pt;padding-left:18pt;text-align:justify"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Discontinued Operations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During May 2019, Cumberland entered into a Dissolution Agreement  ("Dissolution Agreement") with Clinigen Healthcare Limited ("Clinigen") in which the Company returned the exclusive rights to commercialize Ethyol&lt;/span&gt;&lt;span style="background-color:#ffffff;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;&#xae;&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; and Totect&lt;/span&gt;&lt;span style="background-color:#ffffff;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;&#xae;&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; in the United States to Clinigen. Under the terms of the Dissolution Agreement, Cumberland is no longer involved directly or indirectly with the distribution, marketing and promotion of either Ethyol or Totect or any competing products following December 31, 2019. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's exit from the products meets the accounting criteria to be reported as discontinued operations and the discontinued operating results have been reclassified in the financial statements and footnotes for all periods presented to reflect the discontinued status of these products. Refer to Note 19, for additional information.&lt;/span&gt;&lt;/div&gt;</us-gaap:DiscontinuedOperationsPolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTMvZnJhZzo3ZTZlNmUyZmM0MGQ0YzE3OGY4ZGJhN2Q4OTdlYTIxNi90ZXh0cmVnaW9uOjdlNmU2ZTJmYzQwZDRjMTc4ZjhkYmE3ZDg5N2VhMjE2XzI3ODA5_fb9161d0-2fd2-4fa0-97bb-e24aa46fd681">&lt;div style="margin-top:7pt;padding-left: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:120%"&gt;Recent Accounting Guidance &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Recent Accounting Pronouncements Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In June 2016, the FASB issued ASU No. 2016-13, &#x201c;Financial Instruments-Credit Losses,&#x201d; which changes the impairment model for most financial assets and certain other instruments. For trade and other receivables, held-to-maturity debt securities, loans and other instruments, companies will be required to use a new forward-looking &#x201c;expected loss&#x201d; model that generally will result in the earlier recognition of allowances for losses. For available-for-sale debt securities with unrealized losses, companies will measure credit losses in a manner similar to what they do today, except that the losses will be recognized as allowances rather than as reductions in the amortized cost of the securities. Companies will have to disclose additional information, including information they use to track credit quality by year of origination for most financing receivables. Companies will apply the ASU&#x2019;s provisions as a cumulative-effect adjustment, if any, to retained earnings as of the beginning of the first reporting period in which the guidance is adopted.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Related to ASU No. 2016-13 discussed above, in May 2019, the FASB issued ASU 2019-05, "Financial Instruments-Credit Losses (Topic 326): Targeted Transition Relief" which provides transition relief for ASU 2016-13 by providing entities with an alternative to irrevocably electing the fair value option for eligible financial assets measured at amortized cost upon adoption of the new credit losses standard. Certain eligibility requirements must be met and the election must be applied on an instrument-by-instrument basis. The election is not available for either available-for-sale or held-to-maturity debt securities. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company adopted both ASU 2016-13 and ASU 2019-05 on January 1, 2023. The adoption of ASU 2016-13 and ASU 2019-05 are not expected to have a material impact on the Company&#x2019;s consolidated financial statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzQ1NDU_ac926586-b60c-448f-9713-8542934e94c7">RediTrex&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;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;, Vibativ&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;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt; and Sancuso&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;&#xae;&lt;/span&gt;&lt;div style="margin-top:8pt;padding-left: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:400;line-height:120%"&gt;RediTrex&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2016, the Company announced an agreement with the Nordic Group B.V. ("Nordic") to acquire the exclusive U.S. rights to Nordic&#x2019;s injectable methotrexate product line designed for the treatment of active rheumatoid arthritis, juvenile idiopathic arthritis, severe psoriatic arthritis, and severe disabling psoriasis. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As consideration for the license Cumberland paid a deposit of $0.1 million at closing.  The Company provided $0.9 million in consideration through a grant of 180,000 restricted shares of Cumberland common stock to be vested upon the FDA approval of the first Nordic product. Cumberland also agreed to provide Nordic a series of payments &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:120%"&gt;tied to the products&#x2019; FDA approval, launch and achievement of certain sales milestones. Under the terms of the agreement, Cumberland is responsible for the product registration and commercialization in the U.S. Nordic is responsible for product manufacturing and supply.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On November 27, 2019, Cumberland received FDA approval for the first Nordic injectable product and authorization to market them under the RediTrex brand name. The 180,000 shares of restricted Cumberland common stock previously provided to Nordic vested upon approval and were valued at $0.9 million on the vesting date. The FDA approval also resulted in a $1.0&#160;million milestone payment due to Nordic.  This milestone payment was paid in July 2020.  During December 2020, Cumberland began distributing RediTrex which also resulted in a $1.0&#160;million milestone payment due to Nordic.  The full launch of RediTrex occurred in October 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Effective July 12, 2022, the Company entered into an amendment to our agreement with Nordic whereby they may assume responsibility for RediTrex marketing authorization in the U.S. and the opportunity to commercialize the product in the U.S. after June 30, 2023. Cumberland will continue to distribute and support the product until then.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;  &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In accordance with the terms of the amendment, Nordic has agreed to return the 180,000 restricted Cumberland shares we previously issued to Nordic which will be cancelled, refund to Cumberland the milestone payment of $1.0&#160;million we made associated with the brand's U.S. approval and issue a credit note in favor of the Company in the amount of $1.0&#160;million for the unpaid milestone payment due from us for launch of the product line. The companies will cooperate on any transition and Cumberland will receive a long-term royalty on any Nordic sales of the product.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cumberland had approximately $2.6&#160;million in net intangible assets related to RediTrex at December&#160;31, 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Vibativ&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During November 2018, the Company closed on an agreement with Theravance Biopharma ("Theravance") to acquire the global responsibility for Vibativ including the marketing, distribution, manufacturing and regulatory activities associated with the brand.  Vibativ is a patented, FDA approved injectable anti-infective for the treatment of certain serious bacterial infections including hospital-acquired and ventilator-associated bacterial pneumonia and complicated skin and skin structure infections. It addresses a range of Gram-positive bacterial pathogens, including those that are considered difficult-to-treat and multidrug-resistant.  Cumberland acquired Vibativ to further add to its product offerings, increase its net revenue and positively contribute to the Company's operating results.  Cumberland expects to deduct the goodwill acquired in the acquisition for tax purposes.    &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In addition, Cumberland agreed to pay a royalty of up to 20% on future net sales of the product after a $2.5 million threshold is met.  The future royalty payments were required to be recognized at their acquisition-date fair value as part of the contingent consideration transferred in the business combination. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the changes in the Company's Level 3 contingent consideration liability.  The contingent consideration earned and accrued in operating expenses is paid to the seller quarterly.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center"&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 style="width:77.265%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:20.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Contingent consideration liability&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Balance at December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,200,553&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Cash payment of royalty during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,166,682)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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 fair value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,147,750)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Contingent consideration earned and accrued&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,629,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,515,627&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Cash payment of royalty during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,133,113)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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 fair value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,104,690)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Contingent consideration earned and accrued&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;876,999&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,154,823&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The current portion of the contingent consideration liability is $1.3&#160;million and the non-current portion is $2.8&#160;million, as of December&#160;31, 2022. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Sancuso&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On January 3, 2022, Cumberland acquired the U.S. rights to the FDA-approved oncology-supportive care medicine Sancuso from Kyowa Kirin, Inc. ("Kyowa Kirin"), the U.S. affiliate of Japan-based Kyowa Kirin Co., Ltd. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Sancuso is the first and only FDA-approved prescription patch for the prevention of nausea and vomiting in patients receiving certain types of chemotherapy treatment. The active drug in Sancuso, granisetron, slowly dissolves in the thin layer of adhesive that sticks to the patient&#x2019;s skin and is released into their bloodstream over several days, working continuously to prevent chemotherapy-induced nausea and vomiting (&#x201c;CINV&#x201d;). It is applied 24 to 48 hours before receiving chemotherapy and can prevent CINV for up to five consecutive days. Alternative oral treatments must be taken several times (day and night) to deliver the same therapeutic doses.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cumberland acquired U.S. rights to Sancuso and assumed full commercial responsibility for the product in the U.S. &#x2013; including its marketing, promotion, distribution, manufacturing and medical support activities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cumberland has accounted for the transaction as a business combination in accordance with ASC 805 and the product sales are included in the results of operations subsequent to the acquisition date. The Company made an upfront payment of $13.5&#160;million at the closing of the transaction. The Agreement calls for milestone payments of up to $3.5&#160;million based on the attainment of various approvals and sales performance. The Company believes that $1.5&#160;million of the milestone payments will be earned and paid.  The remaining milestone of $2.0&#160;million will be paid if and when annual net revenue exceeds $20&#160;million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In addition, Cumberland has agreed to pay a royalty of up to 10% of on-going net sales of the product.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;  &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The future royalty payments were required to be recognized at their acquisition-date fair value as a contingent consideration liability, as part of the contingent consideration transferred in the business combination. Cumberland has prepared a valuation of the contingent consideration liability utilizing significant unobservable inputs.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;  &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As a result, the valuation is classified as Level 3 fair value measurement.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The acquisition was funded by cash and the Company's revolving credit facility.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;  &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company worked with an outside consultant firm to finalize the Sancuso valuation of the transaction.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value for the assets and liabilities assumed were as follows: prepaid expenses $1.8&#160;million, inventory $2.6&#160;million, goodwill $0.03&#160;million, intangible assets $14.1&#160;million, milestone payable $1.7&#160;million and contingent liability $3.4&#160;million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the changes in the fair value of the contingent consideration liability that is remeasured on a recurring basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.358%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:74.222%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:23.578%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;Balance at January 3, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;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:112%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;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:112%"&gt;3,384,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;Cash payment of royalty during the period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 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:112%"&gt;(1,075,631)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;Change in fair value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 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:112%"&gt;16,394&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;Contingent consideration earned and accrued&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 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:112%"&gt;675,237&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;Balance at December 31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;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:112%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;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:112%"&gt;3,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The current portion of the contingent consideration liability is $1.7 million and the non-current portion is $1.3 million, as of December&#160;31, 2022.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Sancuso Intangible Assets, Goodwill, Revenue and Earnings&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;An outside consultant prepared the Sancuso valuation and the valuation is complete.  The goodwill of $0.03&#160;million arising from this acquisition consists largely of the synergies and economies of scale expected from combining the operations of the Company and the acquired company. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&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 discussions with Management, the identified intangible assets were valued as a composite asset referred to as the Sancuso product rights. It is comprised of:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;   Technology &#x2013; patented and unpatented IP and know-how;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;   Marketing intangible assets including product trademarks/names/dress; and&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;   Customer base to which the product is sold.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;It is a common practice in the life sciences industry to value intangible assets under a portfolio approach given the nature of the intangible assets and facts and circumstances that are common to the industry. The Goodwill amount to be deducted for tax purposes is expected to be $0.03&#160;million and will be amortized over 15 years. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Sancuso was acquired on January 3, 2022. For the year ended December 31, 2022, the amounts included in the income statement for revenue and operating profit were $13.6&#160;million and $6.6&#160;million, respectively.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On a pro-forma basis, the revenue and earnings of the combined entity as though the business combination had occurred in 2021 appears below:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.153%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:57.733%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.900%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.966%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.901%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Cumberland 2022 Results&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Pro-forma 2021 Results&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;42,010,949&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,085,043&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating income (loss)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,704,929)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,447,420)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The 2021 pro-forma results include results for Sancuso as provided by the management of Kyowa Kirin. The Seller is a pharmaceutical company similar to Cumberland. The 2021 results for Sancuso as reported by Kyowa Kirin reflect accounting methodology and reporting which were similar to those employed by the Company.   &lt;/span&gt;&lt;/div&gt;The Company&#x2019;s 2022 balance sheet reflects the full year impact of the Sancuso acquisition, as the acquisition occurred on January 3, 2022.</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="i021bbc1b476b4fbe8c8498630b3444b9_D20161101-20161130"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzQzMg_73945a27-438b-4439-9e3a-613a94cf6476"
      unitRef="usd">100000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="i021bbc1b476b4fbe8c8498630b3444b9_D20161101-20161130"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzQ2OQ_6f523173-544f-4665-86dc-d93970394f33"
      unitRef="usd">900000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:StockIssuedDuringPeriodSharesAcquisitions
      contextRef="i9301d1c169904a1d9355a5854c6f29e3_D20161101-20161130"
      decimals="-4"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzUwOA_a1cfee3e-6440-4794-92e9-a57f033d788a"
      unitRef="shares">180000</us-gaap:StockIssuedDuringPeriodSharesAcquisitions>
    <us-gaap:StockIssuedDuringPeriodSharesAcquisitions
      contextRef="i9301d1c169904a1d9355a5854c6f29e3_D20161101-20161130"
      decimals="-4"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzExMTg_a1cfee3e-6440-4794-92e9-a57f033d788a"
      unitRef="shares">180000</us-gaap:StockIssuedDuringPeriodSharesAcquisitions>
    <us-gaap:StockIssuedDuringPeriodValueAcquisitions
      contextRef="i49ea797c011744d19c463a47c6cbbd46_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzEyMzY_4f642d35-a2e3-40ee-8d4c-e2b5a27efecf"
      unitRef="usd">900000</us-gaap:StockIssuedDuringPeriodValueAcquisitions>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="i9b29c34edaba455b8ebdd48b45de02d6_I20211031"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzEyOTY_223bb06a-5ebd-4697-818d-1c42ed96978f"
      unitRef="usd">1000000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="i9b29c34edaba455b8ebdd48b45de02d6_I20211031"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzE1MzQ_223bb06a-5ebd-4697-818d-1c42ed96978f"
      unitRef="usd">1000000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <cpix:CollaborativeArrangementRightsAndObligationsRestrictedSharesReceivable
      contextRef="id9d899e86c97433d9a3fa65fce7361e2_I20220712"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTE3Mw_9c5d6724-88fa-499c-905b-a4dd41d01fd6"
      unitRef="shares">180000</cpix:CollaborativeArrangementRightsAndObligationsRestrictedSharesReceivable>
    <cpix:CollaborativeArrangementRightsAndObligationsMilestonePaymentReceivable
      contextRef="if7fa09f75a3b48cea5b2fb00b556fbe9_I20220712"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTE0NQ_a40283d2-fdee-4a0c-a310-434774ed0689"
      unitRef="usd">1000000</cpix:CollaborativeArrangementRightsAndObligationsMilestonePaymentReceivable>
    <cpix:CollaborativeArrangementRightsAndObligationsMilestonePaymentCreditDue
      contextRef="if7fa09f75a3b48cea5b2fb00b556fbe9_I20220712"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTE1OQ_2de67d93-cccf-4434-b71c-cd76abb836ac"
      unitRef="usd">1000000</cpix:CollaborativeArrangementRightsAndObligationsMilestonePaymentCreditDue>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles
      contextRef="iec5e58bac724452b876b92a905e3ca14_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzE3Njc_b2ff4080-86f7-4831-80e1-9449e4b65b0e"
      unitRef="usd">2600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibles>
    <cpix:TieredRoyaltyPaymentsPercentage
      contextRef="i133c71a4398845698d7d7701abc49b01_D20181101-20181130"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzMwODk_bbe0466a-e0f7-400c-8c31-3f3e906eb1b8"
      unitRef="number">0.20</cpix:TieredRoyaltyPaymentsPercentage>
    <cpix:TieredRoyaltyPaymentsThreshold
      contextRef="i133c71a4398845698d7d7701abc49b01_D20181101-20181130"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzI3NDg3NzkwNzk3MDI_8ed970ae-05a1-48e3-bc8f-c09b250e383e"
      unitRef="usd">2500000</cpix:TieredRoyaltyPaymentsThreshold>
    <us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionContingentConsiderationTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzQ1NDg_16029336-6a95-403b-8e41-1bbca0c8c497">The following table presents the changes in the Company's Level 3 contingent consideration liability.  The contingent consideration earned and accrued in operating expenses is paid to the seller quarterly.&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 style="width:77.265%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:20.535%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Contingent consideration liability&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Balance at December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,200,553&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Cash payment of royalty during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,166,682)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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 fair value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,147,750)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Contingent consideration earned and accrued&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,629,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Balance at December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,515,627&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Cash payment of royalty during the period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,133,113)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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 fair value&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,104,690)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Contingent consideration earned and accrued&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;876,999&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Balance at December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,154,823&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;The following table presents the changes in the fair value of the contingent consideration liability that is remeasured on a recurring basis.&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.358%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:74.222%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:23.578%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;Balance at January 3, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;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:112%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;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:112%"&gt;3,384,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;Cash payment of royalty during the period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 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:112%"&gt;(1,075,631)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;Change in fair value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 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:112%"&gt;16,394&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;Contingent consideration earned and accrued&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 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:112%"&gt;675,237&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:112%"&gt;Balance at December 31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;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:112%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;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:112%"&gt;3,000,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionContingentConsiderationTextBlock>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="i8e22ba92c2194833a0319101083d1275_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTowMjEzMDY2MWVhNjY0NDIxYmNkNGE0MGM5MWJkMDE3MS90YWJsZXJhbmdlOjAyMTMwNjYxZWE2NjQ0MjFiY2Q0YTQwYzkxYmQwMTcxXzEzLTEtMS0xLTM0Mzg0_daf23246-d314-4a5e-88ba-54eb38420876"
      unitRef="usd">8200553</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:PaymentsForRoyalties
      contextRef="i6f2090fcc89c46fc8c515cd09cc5ffae_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTowMjEzMDY2MWVhNjY0NDIxYmNkNGE0MGM5MWJkMDE3MS90YWJsZXJhbmdlOjAyMTMwNjYxZWE2NjQ0MjFiY2Q0YTQwYzkxYmQwMTcxXzE0LTEtMS0xLTM0Mzg0_6516dfaa-ea89-4cef-95ff-e37433b0733e"
      unitRef="usd">2166682</us-gaap:PaymentsForRoyalties>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="i6f2090fcc89c46fc8c515cd09cc5ffae_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTowMjEzMDY2MWVhNjY0NDIxYmNkNGE0MGM5MWJkMDE3MS90YWJsZXJhbmdlOjAyMTMwNjYxZWE2NjQ0MjFiY2Q0YTQwYzkxYmQwMTcxXzE1LTEtMS0xLTM0Mzg0_e8eaf588-5ec7-4312-ae2f-483315a5f91a"
      unitRef="usd">-1147750</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <cpix:BusinessCombinationContingentConsiderationEarnedAndAccruedInOperatingExpenses
      contextRef="i6f2090fcc89c46fc8c515cd09cc5ffae_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTowMjEzMDY2MWVhNjY0NDIxYmNkNGE0MGM5MWJkMDE3MS90YWJsZXJhbmdlOjAyMTMwNjYxZWE2NjQ0MjFiY2Q0YTQwYzkxYmQwMTcxXzE2LTEtMS0xLTM0Mzg0_42f4d485-240b-4fa4-926d-7f4554af0c0e"
      unitRef="usd">1629506</cpix:BusinessCombinationContingentConsiderationEarnedAndAccruedInOperatingExpenses>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="ib36b29930b41472aaa5de35a1e59cb95_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTowMjEzMDY2MWVhNjY0NDIxYmNkNGE0MGM5MWJkMDE3MS90YWJsZXJhbmdlOjAyMTMwNjYxZWE2NjQ0MjFiY2Q0YTQwYzkxYmQwMTcxXzE3LTEtMS0xLTM0Mzg0_70ddd47a-c6d0-495a-a607-acea9b80c84d"
      unitRef="usd">6515627</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:PaymentsForRoyalties
      contextRef="i924046424f4a4ad5a7dce8e0bfe36d8b_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTowMjEzMDY2MWVhNjY0NDIxYmNkNGE0MGM5MWJkMDE3MS90YWJsZXJhbmdlOjAyMTMwNjYxZWE2NjQ0MjFiY2Q0YTQwYzkxYmQwMTcxXzE4LTEtMS0xLTQxNzAw_54ac0175-6d7b-4244-9f3c-00eb6b2d3d2f"
      unitRef="usd">1133113</us-gaap:PaymentsForRoyalties>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="i924046424f4a4ad5a7dce8e0bfe36d8b_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTowMjEzMDY2MWVhNjY0NDIxYmNkNGE0MGM5MWJkMDE3MS90YWJsZXJhbmdlOjAyMTMwNjYxZWE2NjQ0MjFiY2Q0YTQwYzkxYmQwMTcxXzE5LTEtMS0xLTQxNzAw_e995975c-6487-46a2-ad34-4cf9bcc60dfe"
      unitRef="usd">-2104690</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <cpix:BusinessCombinationContingentConsiderationEarnedAndAccruedInOperatingExpenses
      contextRef="i924046424f4a4ad5a7dce8e0bfe36d8b_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTowMjEzMDY2MWVhNjY0NDIxYmNkNGE0MGM5MWJkMDE3MS90YWJsZXJhbmdlOjAyMTMwNjYxZWE2NjQ0MjFiY2Q0YTQwYzkxYmQwMTcxXzIwLTEtMS0xLTQxNzAw_cab586cf-dc2a-47c6-9062-2dee63fe2471"
      unitRef="usd">876999</cpix:BusinessCombinationContingentConsiderationEarnedAndAccruedInOperatingExpenses>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="if5896e7f52a047b09f7db59a5bf0b6a5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTowMjEzMDY2MWVhNjY0NDIxYmNkNGE0MGM5MWJkMDE3MS90YWJsZXJhbmdlOjAyMTMwNjYxZWE2NjQ0MjFiY2Q0YTQwYzkxYmQwMTcxXzIxLTEtMS0xLTQxNjk4_1dcb699a-67cf-471f-b2b3-338873b5a234"
      unitRef="usd">4154823</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent
      contextRef="if5896e7f52a047b09f7db59a5bf0b6a5_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzQ0OTg_cc850bdc-7173-412b-96b9-5d4cbac61b08"
      unitRef="usd">1300000</us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent
      contextRef="if5896e7f52a047b09f7db59a5bf0b6a5_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzQ1MzI_cc39afcf-616a-46f2-89c6-462ad1e855ad"
      unitRef="usd">2800000</us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent>
    <cpix:CollaborativeArrangementRightsAndObligationsUpfrontPayment
      contextRef="ieb014f15e52c4aa7b4a00972e8c2037e_I20220103"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTE4NA_058b003f-223c-46e6-becf-67365fd46338"
      unitRef="usd">13500000</cpix:CollaborativeArrangementRightsAndObligationsUpfrontPayment>
    <cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsMaximum
      contextRef="ieb014f15e52c4aa7b4a00972e8c2037e_I20220103"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTE5OQ_789e9895-73c6-4b56-8165-3cb500790bc5"
      unitRef="usd">3500000</cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsMaximum>
    <cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsExpected
      contextRef="i44944cd121824f49afdb95c8a1b230c0_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTIxMw_559ec805-9121-4a90-bc22-37797b8bddc1"
      unitRef="usd">1500000</cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsExpected>
    <cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsRemaining
      contextRef="i44944cd121824f49afdb95c8a1b230c0_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTIyNw_323ba0b8-1148-40ae-8b27-a4fa49d1bd47"
      unitRef="usd">2000000</cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsRemaining>
    <cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsAnnualNetRevenueThreshold
      contextRef="i44944cd121824f49afdb95c8a1b230c0_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTI0MQ_892a772a-80c6-49e8-9e4c-475b1c7f04e6"
      unitRef="usd">20000000</cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsAnnualNetRevenueThreshold>
    <cpix:CollaborativeArrangementRightsAndObligationsTieredRoyaltyPercent
      contextRef="i4e74c81ece854dfcb8d7c8c3bc0a2f03_I20220103"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTI1NA_68672903-f067-4f83-8566-ae65202e3063"
      unitRef="number">0.10</cpix:CollaborativeArrangementRightsAndObligationsTieredRoyaltyPercent>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets
      contextRef="i155bdf692bf44e60a73258a7452baa96_I20220103"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTI1OQ_608985b0-3640-45ae-9d17-ab6d8fb06f45"
      unitRef="usd">1800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory
      contextRef="i155bdf692bf44e60a73258a7452baa96_I20220103"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTMwMg_3662f66b-e2bf-4e2a-be88-0b2487cc4680"
      unitRef="usd">2600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
    <us-gaap:Goodwill
      contextRef="i155bdf692bf44e60a73258a7452baa96_I20220103"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTMxNg_8c75a671-1e23-4bef-8c4c-70d76e5ccc3f"
      unitRef="usd">30000.00</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="i155bdf692bf44e60a73258a7452baa96_I20220103"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTI3Mw_e4915840-0ee5-45cf-ac3c-20db31c522df"
      unitRef="usd">14100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:OtherPaymentsToAcquireBusinesses
      contextRef="if8f59b1cd25d434eb648fc77c3dea5b1_D20220103-20220103"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTI4OA_f9cf97cc-e8a7-455a-838d-e80603c1dfc4"
      unitRef="usd">1700000</us-gaap:OtherPaymentsToAcquireBusinesses>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="i155bdf692bf44e60a73258a7452baa96_I20220103"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgyNTMzMQ_8b69071b-3a6f-4c36-8384-dd813077e136"
      unitRef="usd">3400000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="i155bdf692bf44e60a73258a7452baa96_I20220103"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTplYjg3OTk3NGU5ZDA0ODAwOTE5ZjRkM2UyZTI1ZDQwZi90YWJsZXJhbmdlOmViODc5OTc0ZTlkMDQ4MDA5MTlmNGQzZTJlMjVkNDBmXzEtMS0xLTEtNDE2OTY_e52b0499-e366-4b8b-8085-982b9daccf28"
      unitRef="usd">3384000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:PaymentsForRoyalties
      contextRef="i81f3f0b045ff491da276024b81457433_D20220103-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTplYjg3OTk3NGU5ZDA0ODAwOTE5ZjRkM2UyZTI1ZDQwZi90YWJsZXJhbmdlOmViODc5OTc0ZTlkMDQ4MDA5MTlmNGQzZTJlMjVkNDBmXzItMS0xLTEtNDE3MTQ_349a6236-d19c-40b3-ab04-1e5739f9a9ae"
      unitRef="usd">1075631</us-gaap:PaymentsForRoyalties>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="i81f3f0b045ff491da276024b81457433_D20220103-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTplYjg3OTk3NGU5ZDA0ODAwOTE5ZjRkM2UyZTI1ZDQwZi90YWJsZXJhbmdlOmViODc5OTc0ZTlkMDQ4MDA5MTlmNGQzZTJlMjVkNDBmXzMtMS0xLTEtNDE2OTY_f137ee35-cdb4-488e-a683-4014d69fab78"
      unitRef="usd">16394</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <cpix:BusinessCombinationContingentConsiderationEarnedAndAccruedInOperatingExpenses
      contextRef="i81f3f0b045ff491da276024b81457433_D20220103-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTplYjg3OTk3NGU5ZDA0ODAwOTE5ZjRkM2UyZTI1ZDQwZi90YWJsZXJhbmdlOmViODc5OTc0ZTlkMDQ4MDA5MTlmNGQzZTJlMjVkNDBmXzQtMS0xLTEtNDE2OTY_b4cfe5db-453d-48a9-a60a-86f1cde4f484"
      unitRef="usd">675237</cpix:BusinessCombinationContingentConsiderationEarnedAndAccruedInOperatingExpenses>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="if92534bff0f1467fbb22f084f101995f_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTplYjg3OTk3NGU5ZDA0ODAwOTE5ZjRkM2UyZTI1ZDQwZi90YWJsZXJhbmdlOmViODc5OTc0ZTlkMDQ4MDA5MTlmNGQzZTJlMjVkNDBmXzUtMS0xLTEtNDE2OTY_89d3e5ab-b610-499e-bbb6-931a23852c27"
      unitRef="usd">3000000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent
      contextRef="if92534bff0f1467fbb22f084f101995f_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzI3NDg3NzkwNzk2NDY_c940433c-060c-4e5d-9771-445f285521cb"
      unitRef="usd">1700000</us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent
      contextRef="if92534bff0f1467fbb22f084f101995f_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzI3NDg3NzkwNzk2Nzg_32d1a419-161d-443a-b64d-2e4338023c46"
      unitRef="usd">1300000</us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent>
    <us-gaap:Goodwill
      contextRef="i155bdf692bf44e60a73258a7452baa96_I20220103"
      decimals="-4"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgxNTU3ODE_c6feca57-5cf0-456c-8075-dd9b3765fa09"
      unitRef="usd">30000.00</us-gaap:Goodwill>
    <us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount
      contextRef="i155bdf692bf44e60a73258a7452baa96_I20220103"
      decimals="-4"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgxNTU4MTA_8878acff-35c3-4453-9762-74c851736852"
      unitRef="usd">30000.00</us-gaap:BusinessAcquisitionPurchasePriceAllocationGoodwillExpectedTaxDeductibleAmount>
    <us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual
      contextRef="i469400cc5d084372975262bfe96ab0fc_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgzMDczMQ_fd6a0e02-8437-4085-896c-bf8a883b0f77"
      unitRef="usd">13600000</us-gaap:BusinessCombinationProFormaInformationRevenueOfAcquireeSinceAcquisitionDateActual>
    <us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual
      contextRef="i469400cc5d084372975262bfe96ab0fc_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgzMDcxNw_ad779922-06c5-4d91-9c29-6902c8a5b3cb"
      unitRef="usd">6600000</us-gaap:BusinessCombinationProFormaInformationEarningsOrLossOfAcquireeSinceAcquisitionDateActual>
    <us-gaap:BusinessAcquisitionProFormaInformationTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90ZXh0cmVnaW9uOjZlMTM4ZGYyNDhlODRlNzU4YmEzZmJjNDA0OGExMTk1XzU0OTc1NTgzMDcwMQ_46c3f877-e25d-4285-960c-4cbe15ba047e">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On a pro-forma basis, the revenue and earnings of the combined entity as though the business combination had occurred in 2021 appears below:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.153%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:57.733%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.900%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.966%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.901%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Cumberland 2022 Results&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Pro-forma 2021 Results&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net Revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;42,010,949&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;50,085,043&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Operating income (loss)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,704,929)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,447,420)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:BusinessAcquisitionProFormaInformationTextBlock>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTpmMWYxNDJhZmFhMTc0MTQzYTcyNmJjMGY1MTBiOTMyZi90YWJsZXJhbmdlOmYxZjE0MmFmYWExNzQxNDNhNzI2YmMwZjUxMGI5MzJmXzEtMS0xLTEtNDM1MDg_c85a7225-4ae3-4383-8ce4-c3827a8a4bd7"
      unitRef="usd">42010949</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaRevenue
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTpmMWYxNDJhZmFhMTc0MTQzYTcyNmJjMGY1MTBiOTMyZi90YWJsZXJhbmdlOmYxZjE0MmFmYWExNzQxNDNhNzI2YmMwZjUxMGI5MzJmXzEtMy0xLTEtNDM1MDg_6f570f51-46c7-43e0-a615-bc68401cbcc9"
      unitRef="usd">50085043</us-gaap:BusinessAcquisitionsProFormaRevenue>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTpmMWYxNDJhZmFhMTc0MTQzYTcyNmJjMGY1MTBiOTMyZi90YWJsZXJhbmdlOmYxZjE0MmFmYWExNzQxNDNhNzI2YmMwZjUxMGI5MzJmXzMtMS0xLTEtNDM1MDg_082099de-1df5-4c11-8381-d340ec8030d7"
      unitRef="usd">-5704929</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTYvZnJhZzo2ZTEzOGRmMjQ4ZTg0ZTc1OGJhM2ZiYzQwNDhhMTE5NS90YWJsZTpmMWYxNDJhZmFhMTc0MTQzYTcyNmJjMGY1MTBiOTMyZi90YWJsZXJhbmdlOmYxZjE0MmFmYWExNzQxNDNhNzI2YmMwZjUxMGI5MzJmXzMtMy0xLTEtNDM1MDg_592ee01c-c25d-4ff4-84a0-0bfc1b6ba02d"
      unitRef="usd">-5447420</us-gaap:BusinessAcquisitionsProFormaNetIncomeLoss>
    <us-gaap:AdditionalFinancialInformationDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90ZXh0cmVnaW9uOjJjMTIxMDQwYjhjYzQwNmZhNDk1NDM3YzY5NTgzNTI5XzMyMDE_8a0e588c-6c4b-442a-a08c-92003fe375b7">Revenues&lt;div style="margin-top:7pt;padding-left: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:120%"&gt;Product Revenues&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:center;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s net product revenues consisted of the following for the years ended December&#160;31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.038%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:65.243%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.433%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Products:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Kristalose&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,205,155&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,993,658&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Sancuso&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,205,603&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Vibativ&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,487,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,704,062&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Caldolor&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,827,200&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,970,301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Acetadote&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;501,040&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;850,993&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Omeclamox-Pak&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29,145&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(388,657)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Vaprisol&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(447,697)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,859,581&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;RediTrex&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(126,726)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,321&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;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;Total net product revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,681,182&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,045,259&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:8pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Other Revenues&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt; &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; The Company has agreements with international partners for commercialization of the Company's products with associated payments included in other revenues. Those agreements provide that each of the partners are responsible for seeking regulatory approvals for the product, and following approval, each partner will be responsible for the ongoing distribution and sales in the respective international territories. The Company provides a dossier for product registration and maintains responsibility for the relevant intellectual property. Cumberland is typically entitled to receive a non-refundable, up-front payment at the time each agreement is executed as consideration for the product dossier and for the rights to the distinct intellectual property rights in the respective international territory. These agreements also typically provide for additional payments upon a partner&#x2019;s achievement of a defined regulatory approval and sales milestones. The Company may also be entitled to receive royalties on future sales of the products and a transfer price on supplies.  The contractual payments associated with the partner&#x2019;s achievement of regulatory approvals, sales milestones and royalties on future sales are recognized as revenue upon occurrence, or at such time that the Company has a high degree of confidence that the revenue would not be reversed in a subsequent period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The international agreements provide for $1.5 million in non-refundable up-front payments, milestone payments of up to $2.4 million related to regulatory approvals and up to $5.6 million in payments related to product sales.  From 2012 through December&#160;31, 2022, the Company has recognized a cumulative $1.9 million in upfront payments as other revenue and has recognized $0.5&#160;million during the year 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other revenues during 2022 and 2021 also include funding from federal grant programs including those secured by CET through the Small Business Administration as well as lease income generated by CET&#x2019;s Life Sciences Center. The Life Sciences Center is a research center that provides scientists with access to flexible lab space and other resources to develop biomedical products. Grant revenue from these programs totaled approximately $0.2 million and $0.4 million for the years ending December&#160;31, 2022 and 2021, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:AdditionalFinancialInformationDisclosureTextBlock>
    <us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90ZXh0cmVnaW9uOjJjMTIxMDQwYjhjYzQwNmZhNDk1NDM3YzY5NTgzNTI5XzMyMDM_6acae24e-e085-4e3f-8160-c1f851a0947a">&lt;div style="margin-top:7pt;text-align:center;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s net product revenues consisted of the following for the years ended December&#160;31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.038%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:65.243%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.433%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Products:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Kristalose&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,205,155&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;15,993,658&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Sancuso&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13,205,603&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Vibativ&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,487,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,704,062&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Caldolor&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,827,200&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,970,301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Acetadote&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;501,040&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;850,993&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Omeclamox-Pak&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29,145&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(388,657)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Vaprisol&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(447,697)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,859,581&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;RediTrex&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(126,726)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,321&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;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;Total net product revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;40,681,182&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35,045,259&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:8pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i4696b3ec55c74a54b9b5653d2452aca1_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzItMi0xLTEtMzQzODQ_eb9a93b1-550c-493c-97f7-1032056bd6d1"
      unitRef="usd">15205155</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if32dce83e48c4a7b91a0d4e335b66480_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzItNC0xLTEtMzQzODQ_74c17705-a313-4874-ae98-9036e7a6d9e9"
      unitRef="usd">15993658</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i98dc7a56a6ee4bc5ace7b118374a0de5_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzMtMi0xLTEtMzY2Nzc_80e6f48f-c88b-42cd-b8a3-1f697cbb8f42"
      unitRef="usd">13205603</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ifaddae84fd5b4b89a3139c9ac38b23c6_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzMtNC0xLTEtMzY2Nzc_9e37825f-6dd2-4c33-b3f5-824f216e78c7"
      unitRef="usd">0</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9f3d9b8292154fa0b504704f80f2e116_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzMtMi0xLTEtMzQzODQ_1e9c80af-9464-4113-81b7-6f4db0729cb7"
      unitRef="usd">7487462</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="icf29047eb0424eef806c96c842debe22_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzMtNC0xLTEtMzQzODQ_2972dd2d-0ce2-4477-b58c-eac4128b6615"
      unitRef="usd">11704062</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i3e3b77ebc51845fd880355bb1563cc5f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzQtMi0xLTEtMzQzODQ_b730d73c-2780-4dd9-9a50-b33132ea491b"
      unitRef="usd">4827200</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i18b3e901750344aba9b2ac8dc3d8398e_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzQtNC0xLTEtMzQzODQ_e2b58ac3-5cdf-46e7-b371-0d89c227ab5d"
      unitRef="usd">4970301</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i37ab018ed1464e58a2e6f54a577ad077_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzUtMi0xLTEtMzQzODQ_5fdb7170-7c10-430d-ac97-381ec20b47c9"
      unitRef="usd">501040</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia8fd80adb04d4f22a287d4e54e9550dc_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzUtNC0xLTEtMzQzODQ_4fc50890-1751-4c85-abce-28ed9ed4c5c4"
      unitRef="usd">850993</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iaa10efc46e9e461386aa80220fb7a4ce_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzYtMi0xLTEtMzQzODQ_f4a0bf31-e0b2-49e1-b900-a137fedc40f1"
      unitRef="usd">29145</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ibe04d4939aef4eb2ae85d6d4c47c642d_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzYtNC0xLTEtMzQzODQ_673407a2-c2d0-44ae-81e0-563ae8960015"
      unitRef="usd">-388657</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if9859c4aed134140b347fcfab3e9f9f9_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzctMi0xLTEtMzQzODQ_a5cec3fe-bad3-4e7e-93c9-8ee56a7b4fb6"
      unitRef="usd">-447697</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id6e9d7a75c774347844d3abe0e6a3d75_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzctNC0xLTEtMzQzODQ_52249283-931f-4ae0-a19c-90b3e80939ff"
      unitRef="usd">1859581</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i82ef6903bdd04aa7be5bf21326a39725_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzgtMi0xLTEtMzQzODQ_8aede2ee-b194-4258-83ab-10db95bec6d2"
      unitRef="usd">-126726</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iee6aca6f1f4640128e84638b21a73ac8_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzgtNC0xLTEtMzQzODQ_25b06301-279b-465f-926c-c3f31bfbb85b"
      unitRef="usd">55321</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzktMi0xLTEtMzQzODQ_d9ee1cd2-476f-446d-afe3-bbfd3f72eb1e"
      unitRef="usd">40681182</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90YWJsZTplOWFjNWFhYjZlMzU0YmFhODNkY2M5M2MzMTA0NGY2ZC90YWJsZXJhbmdlOmU5YWM1YWFiNmUzNTRiYWE4M2RjYzkzYzMxMDQ0ZjZkXzktNC0xLTEtMzQzODQ_e9206437-4974-46be-ba21-d4f8bc83adc3"
      unitRef="usd">35045259</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <cpix:RevenueRecognitionUpfrontPayment
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90ZXh0cmVnaW9uOjJjMTIxMDQwYjhjYzQwNmZhNDk1NDM3YzY5NTgzNTI5XzIzMjg_4b4ff2f3-6a9a-4f86-a0e7-842d31ae6900"
      unitRef="usd">1500000</cpix:RevenueRecognitionUpfrontPayment>
    <cpix:RevenueRecognitionPotentialUpfrontPaymentsRelatedtoRegulatoryApproval
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90ZXh0cmVnaW9uOjJjMTIxMDQwYjhjYzQwNmZhNDk1NDM3YzY5NTgzNTI5XzIzOTY_5a56f374-a0f5-4cd1-acaf-a952f747013b"
      unitRef="usd">2400000</cpix:RevenueRecognitionPotentialUpfrontPaymentsRelatedtoRegulatoryApproval>
    <cpix:RevenueRecognitionPotentialUpfrontPaymentRelatedtoProductSales
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90ZXh0cmVnaW9uOjJjMTIxMDQwYjhjYzQwNmZhNDk1NDM3YzY5NTgzNTI5XzI0NDE_2f508c2e-f670-40e5-bdc1-d659e0736d5a"
      unitRef="usd">5600000</cpix:RevenueRecognitionPotentialUpfrontPaymentRelatedtoProductSales>
    <cpix:RevenueRecognitionCumulativeUpfrontPayment
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90ZXh0cmVnaW9uOjJjMTIxMDQwYjhjYzQwNmZhNDk1NDM3YzY5NTgzNTI5XzI1NDU_33f3b14e-969f-4aa6-bdbd-078e7b642764"
      unitRef="usd">1900000</cpix:RevenueRecognitionCumulativeUpfrontPayment>
    <cpix:RevenueRecognitionMilestonePayments
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90ZXh0cmVnaW9uOjJjMTIxMDQwYjhjYzQwNmZhNDk1NDM3YzY5NTgzNTI5XzI2MDQ_4dd5b10c-9427-4aa7-9d44-8e06ba73629c"
      unitRef="usd">500000</cpix:RevenueRecognitionMilestonePayments>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if6d9484ddbcb49fda1792dcd0ca0e89c_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90ZXh0cmVnaW9uOjJjMTIxMDQwYjhjYzQwNmZhNDk1NDM3YzY5NTgzNTI5XzMxMzc_66a1dea7-e5cb-4760-a09c-3ddcf917a212"
      unitRef="usd">200000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i16b9bb498b204e8a9f03c0c2fdc55984_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8xOTkvZnJhZzoyYzEyMTA0MGI4Y2M0MDZmYTQ5NTQzN2M2OTU4MzUyOS90ZXh0cmVnaW9uOjJjMTIxMDQwYjhjYzQwNmZhNDk1NDM3YzY5NTgzNTI5XzMxNDI_f4d02420-0c09-4927-b9dc-6d6a47dc33a1"
      unitRef="usd">400000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:InventoryDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90ZXh0cmVnaW9uOmNkNmQ2MmFjNDg0MjRjYzk4NDE4MDQ3MzEyM2Q5Y2IyXzIxODQ_c574e980-dd55-4ecd-8505-a2c520f1907c">Inventories&lt;div style="margin-top:8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's net inventories consisted of the following as of December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:87.339%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:60.000%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.900%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.248%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.900%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.252%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Raw materials and work in process, net of reserve&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,899,659&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,374,983&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Consigned inventory&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;168,923&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;164,378&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Finished goods, net of reserve&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,322,167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,939,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;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;Total inventories&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,390,748&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,478,449&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;less non-current inventories&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7,527,167)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,048,567)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Total inventories classified as current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,863,581&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,429,882&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:10pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At December&#160;31, 2022 and 2021, the Company had recognized and maintained cumulative net realizable value charges for potential obsolescence and discontinuance losses of approximately $0.5 million and $1.4&#160;million, respectively.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the acquisition of certain product rights related to the Kristalose brand, the Company is responsible for the purchase of the active pharmaceutical ingredient ("API") for Kristalose and maintains the inventory at the third-party packagers.  As the API is consumed in production, the value of the API is transferred from raw materials to finished goods.  API for the Company's Vaprisol brand is also included in the raw materials inventory total at December&#160;31, 2022 and 2021. Consigned inventory represents Authorized Generic inventory stored with Padagis until shipment.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As part of the Vibativ acquisition, Cumberland acquired API and work in process inventories of $15.6 million  that were classified as non-current inventories.  The Vibativ non-current API inventory was $7.1 million at December&#160;31, 2022 and $8.1 million at December&#160;31, 2021.  The Company had no Vibativ finished goods included in the non-current inventories at December&#160;31, 2022, and $0.5 million at December&#160;31, 2021.  At  December&#160;31, 2022 and 2021, Cumberland had $0.3 million in non-current inventory for API related to its ifetroban clinical initiatives and $0.1 million of finished goods&lt;/span&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90ZXh0cmVnaW9uOmNkNmQ2MmFjNDg0MjRjYzk4NDE4MDQ3MzEyM2Q5Y2IyXzIxODU_85541f90-8382-45f5-b387-a086aa8a0772">&lt;div style="margin-top:8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's net inventories consisted of the following as of December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:87.339%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:60.000%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.900%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.248%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.900%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.252%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Raw materials and work in process, net of reserve&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,899,659&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,374,983&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Consigned inventory&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;168,923&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;164,378&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Finished goods, net of reserve&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,322,167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,939,088&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;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;Total inventories&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,390,748&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,478,449&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;less non-current inventories&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7,527,167)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(9,048,567)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Total inventories classified as current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,863,581&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,429,882&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90YWJsZToyNGMyNjEyYTIwMDI0Yzc0YmI5MzRjZmUxMmQ1NThkZi90YWJsZXJhbmdlOjI0YzI2MTJhMjAwMjRjNzRiYjkzNGNmZTEyZDU1OGRmXzItMi0xLTEtMzQzODQ_aeb7050a-f8e8-4828-81ee-d2e3e9a74fd2"
      unitRef="usd">12899659</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90YWJsZToyNGMyNjEyYTIwMDI0Yzc0YmI5MzRjZmUxMmQ1NThkZi90YWJsZXJhbmdlOjI0YzI2MTJhMjAwMjRjNzRiYjkzNGNmZTEyZDU1OGRmXzItNC0xLTEtMzQzODQ_24ad947d-de61-497b-bbe4-b4c863453960"
      unitRef="usd">12374983</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90YWJsZToyNGMyNjEyYTIwMDI0Yzc0YmI5MzRjZmUxMmQ1NThkZi90YWJsZXJhbmdlOjI0YzI2MTJhMjAwMjRjNzRiYjkzNGNmZTEyZDU1OGRmXzMtMi0xLTEtMzQzODQ_ef499dad-7f1f-44d0-b53b-f10daf54954f"
      unitRef="usd">168923</us-gaap:OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment>
    <us-gaap:OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90YWJsZToyNGMyNjEyYTIwMDI0Yzc0YmI5MzRjZmUxMmQ1NThkZi90YWJsZXJhbmdlOjI0YzI2MTJhMjAwMjRjNzRiYjkzNGNmZTEyZDU1OGRmXzMtNC0xLTEtMzQzODQ_9c16c44d-ef39-4f56-9923-3f32bac1a0b4"
      unitRef="usd">164378</us-gaap:OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90YWJsZToyNGMyNjEyYTIwMDI0Yzc0YmI5MzRjZmUxMmQ1NThkZi90YWJsZXJhbmdlOjI0YzI2MTJhMjAwMjRjNzRiYjkzNGNmZTEyZDU1OGRmXzQtMi0xLTEtMzQzODQ_ef9c1f47-5fac-48e9-8f4d-df00e245ee82"
      unitRef="usd">4322167</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90YWJsZToyNGMyNjEyYTIwMDI0Yzc0YmI5MzRjZmUxMmQ1NThkZi90YWJsZXJhbmdlOjI0YzI2MTJhMjAwMjRjNzRiYjkzNGNmZTEyZDU1OGRmXzQtNC0xLTEtMzQzODQ_21d95ed3-a9a7-45a6-a2a7-991128699fc2"
      unitRef="usd">4939088</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryGross
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90YWJsZToyNGMyNjEyYTIwMDI0Yzc0YmI5MzRjZmUxMmQ1NThkZi90YWJsZXJhbmdlOjI0YzI2MTJhMjAwMjRjNzRiYjkzNGNmZTEyZDU1OGRmXzUtMi0xLTEtMzQzODQ_71fb9144-1490-459c-a8ac-2a5ed501b587"
      unitRef="usd">17390748</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90YWJsZToyNGMyNjEyYTIwMDI0Yzc0YmI5MzRjZmUxMmQ1NThkZi90YWJsZXJhbmdlOjI0YzI2MTJhMjAwMjRjNzRiYjkzNGNmZTEyZDU1OGRmXzUtNC0xLTEtMzQzODQ_0fe121be-c06b-4691-bd80-c3b3efa55257"
      unitRef="usd">17478449</us-gaap:InventoryGross>
    <us-gaap:InventoryNoncurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90YWJsZToyNGMyNjEyYTIwMDI0Yzc0YmI5MzRjZmUxMmQ1NThkZi90YWJsZXJhbmdlOjI0YzI2MTJhMjAwMjRjNzRiYjkzNGNmZTEyZDU1OGRmXzYtMi0xLTEtMzQzODQ_8fca7dea-7aff-4678-b423-a79a76043036"
      unitRef="usd">7527167</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryNoncurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90YWJsZToyNGMyNjEyYTIwMDI0Yzc0YmI5MzRjZmUxMmQ1NThkZi90YWJsZXJhbmdlOjI0YzI2MTJhMjAwMjRjNzRiYjkzNGNmZTEyZDU1OGRmXzYtNC0xLTEtMzQzODQ_53f0c8b7-68df-4f37-9d67-7e45992b19bb"
      unitRef="usd">9048567</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryNet
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90YWJsZToyNGMyNjEyYTIwMDI0Yzc0YmI5MzRjZmUxMmQ1NThkZi90YWJsZXJhbmdlOjI0YzI2MTJhMjAwMjRjNzRiYjkzNGNmZTEyZDU1OGRmXzctMi0xLTEtMzQzODQ_0020fa23-0977-493f-ab58-9f78b2573f89"
      unitRef="usd">9863581</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90YWJsZToyNGMyNjEyYTIwMDI0Yzc0YmI5MzRjZmUxMmQ1NThkZi90YWJsZXJhbmdlOjI0YzI2MTJhMjAwMjRjNzRiYjkzNGNmZTEyZDU1OGRmXzctNC0xLTEtMzQzODQ_767737b5-899f-43b4-b761-ac7e954392d7"
      unitRef="usd">8429882</us-gaap:InventoryNet>
    <us-gaap:InventoryValuationReserves
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90ZXh0cmVnaW9uOmNkNmQ2MmFjNDg0MjRjYzk4NDE4MDQ3MzEyM2Q5Y2IyXzExMTY_ad2a5c2e-eea2-4c7f-8ebe-3035b6b5c9dc"
      unitRef="usd">500000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90ZXh0cmVnaW9uOmNkNmQ2MmFjNDg0MjRjYzk4NDE4MDQ3MzEyM2Q5Y2IyXzExMjM_a6270ed4-07a9-4e12-b85c-1849b5b8d66f"
      unitRef="usd">1400000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryNoncurrent
      contextRef="if13d0a3b9ba3470186981ffcd4cd386c_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90ZXh0cmVnaW9uOmNkNmQ2MmFjNDg0MjRjYzk4NDE4MDQ3MzEyM2Q5Y2IyXzE4MTQ_5bf1d94b-5129-446e-a3e1-4bd93fa5f578"
      unitRef="usd">15600000</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryNoncurrent
      contextRef="if5896e7f52a047b09f7db59a5bf0b6a5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90ZXh0cmVnaW9uOmNkNmQ2MmFjNDg0MjRjYzk4NDE4MDQ3MzEyM2Q5Y2IyXzE5MTc_b49bbd5d-eb3f-418b-ae3b-5920d6ea5136"
      unitRef="usd">7100000</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryNoncurrent
      contextRef="ib36b29930b41472aaa5de35a1e59cb95_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90ZXh0cmVnaW9uOmNkNmQ2MmFjNDg0MjRjYzk4NDE4MDQ3MzEyM2Q5Y2IyXzE5MjQ_f85ed280-01b8-4ab6-bc58-0e0feba8537e"
      unitRef="usd">8100000</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="if5896e7f52a047b09f7db59a5bf0b6a5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90ZXh0cmVnaW9uOmNkNmQ2MmFjNDg0MjRjYzk4NDE4MDQ3MzEyM2Q5Y2IyXzU0OTc1NTgxNzIxNQ_7513d223-b587-4f4f-88ba-408189d047d3"
      unitRef="usd">0</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="ib36b29930b41472aaa5de35a1e59cb95_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90ZXh0cmVnaW9uOmNkNmQ2MmFjNDg0MjRjYzk4NDE4MDQ3MzEyM2Q5Y2IyXzEwOTk1MTE2MzA5OTI_6d1bf7b0-4428-4aa2-a98d-0384a99ddee0"
      unitRef="usd">500000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryNoncurrent
      contextRef="icf903ddd161947ba816eea446f55a857_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90ZXh0cmVnaW9uOmNkNmQ2MmFjNDg0MjRjYzk4NDE4MDQ3MzEyM2Q5Y2IyXzIxMDM_c6eda3fe-ed3b-4274-84fb-a42708f4fef3"
      unitRef="usd">300000</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryNoncurrent
      contextRef="i90d887a51969486c9881a5eac45b76a6_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90ZXh0cmVnaW9uOmNkNmQ2MmFjNDg0MjRjYzk4NDE4MDQ3MzEyM2Q5Y2IyXzIxMDM_d2d1b0e9-4e7a-40e5-9586-3c2228c2abd3"
      unitRef="usd">300000</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="icf903ddd161947ba816eea446f55a857_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90ZXh0cmVnaW9uOmNkNmQ2MmFjNDg0MjRjYzk4NDE4MDQ3MzEyM2Q5Y2IyXzEwOTk1MTE2MzEwNzk_22ff11d2-0b9a-4eeb-b081-86779e43143b"
      unitRef="usd">100000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="i90d887a51969486c9881a5eac45b76a6_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDIvZnJhZzpjZDZkNjJhYzQ4NDI0Y2M5ODQxODA0NzMxMjNkOWNiMi90ZXh0cmVnaW9uOmNkNmQ2MmFjNDg0MjRjYzk4NDE4MDQ3MzEyM2Q5Y2IyXzEwOTk1MTE2MzEwNzk_ab0da3a9-285c-4371-9ca0-dc218fdee75f"
      unitRef="usd">100000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90ZXh0cmVnaW9uOjczOGNkNTBjMWIwMzRiMzM5NzdiYWYzNzI5ZGE0MTkwXzM1Ng_f2abd26c-53d3-46e4-8c6b-d0b3567d3926">Property and Equipment&lt;div style="margin-top:8pt;padding-left:18pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment consisted of the following at December&#160;31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:9pt;padding-right:9pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:87.980%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:34.965%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.892%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:23.125%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.892%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.114%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.892%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.120%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Range of&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;useful lives&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Computer equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3&#160;&#x2013;&#160;5&#160;years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;465,508&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,352,734&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Office equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3&#160;&#x2013;&#160;15&#160;years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;746,602&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;820,712&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Furniture and fixtures&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&#x2013;&#160;15 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;369,365&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;638,903&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3&#160;&#x2013;&#160;15&#160;years,&#160;or remaining&#160;lease&#160;term&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;787,749&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,422,439&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-indent:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total property and &lt;/span&gt;&lt;/div&gt;&lt;div style="text-indent:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;equipment, gross&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,369,224&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,234,788&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: accumulated depreciation &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;and amortization&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,085,185)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,792,153)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-indent:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total property and &lt;/span&gt;&lt;/div&gt;&lt;div style="text-indent:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;equipment, net&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;284,039&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;442,635&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Depreciation expense, including amortization expense related to leasehold improvements, is included in general and administrative expense in the consolidated statements of operations.  Depreciation expense was as follows for the years ended December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.916%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:65.512%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.781%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.957%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.781%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.269%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Depreciation expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;260,745&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;235,066&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentDisclosureTextBlock>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90ZXh0cmVnaW9uOjczOGNkNTBjMWIwMzRiMzM5NzdiYWYzNzI5ZGE0MTkwXzM1OA_f7e40b8c-7204-44f1-bf02-7731b58aa90e">&lt;div style="margin-top:8pt;padding-left:18pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment consisted of the following at December&#160;31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:9pt;padding-right:9pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:87.980%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:34.965%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.892%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:23.125%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.892%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.114%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.892%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.120%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Range of&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;useful lives&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Computer equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3&#160;&#x2013;&#160;5&#160;years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;465,508&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,352,734&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Office equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3&#160;&#x2013;&#160;15&#160;years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;746,602&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;820,712&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Furniture and fixtures&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5&#160;&#x2013;&#160;15 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;369,365&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;638,903&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3&#160;&#x2013;&#160;15&#160;years,&#160;or remaining&#160;lease&#160;term&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;787,749&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,422,439&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-indent:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total property and &lt;/span&gt;&lt;/div&gt;&lt;div style="text-indent:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;equipment, gross&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,369,224&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,234,788&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Less: accumulated depreciation &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;and amortization&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2,085,185)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,792,153)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-indent:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total property and &lt;/span&gt;&lt;/div&gt;&lt;div style="text-indent:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;equipment, net&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;284,039&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;442,635&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i0b7caf11e1a24164b014dcb9cc1efa95_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzItMi0xLTEtMzQzODQvdGV4dHJlZ2lvbjowMjY1ZmRlY2RiMjE0OTRiYjc4YjRjZTkwZThlYzk4Nl80_1f7cd11a-5f17-478b-987f-59796ecf7b09">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="ib30352d285114277aebd23aebdefc31a_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzItMi0xLTEtMzQzODQvdGV4dHJlZ2lvbjowMjY1ZmRlY2RiMjE0OTRiYjc4YjRjZTkwZThlYzk4Nl85_3bce3ebc-73dc-48ae-a500-a664f3f10656">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="iebc3383fa2574ae1802474eb1d124ef3_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzItNC0xLTEtMzQzODQ_9ed34f02-1d15-4ec8-bd34-a1f41686f520"
      unitRef="usd">465508</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ic80dac19a3234cf59481be62a47b00c2_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzItNi0xLTEtMzQzODQ_42199d93-644a-47c6-b562-897664c87f94"
      unitRef="usd">1352734</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="ib15d3092260845f9b57d3c442a6f6c72_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzMtMi0xLTEtMzQzODQvdGV4dHJlZ2lvbjo1YzhjM2I5YmJkNTk0NmFlYWMzMjViYzMzZDUxMGQ2Yl80_e883d573-36b8-4216-a80a-b695647b538e">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i8f1325d766c543488d6cdd933169b69f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzMtMi0xLTEtMzQzODQvdGV4dHJlZ2lvbjo1YzhjM2I5YmJkNTk0NmFlYWMzMjViYzMzZDUxMGQ2Yl85_99384b92-58e3-4c74-9d96-916b57622e62">P15Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i16957755b21643ba9ebe843a90bb7625_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzMtNC0xLTEtMzQzODQ_cbc2a271-898d-4f9d-8918-191469f34280"
      unitRef="usd">746602</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="id7d4d8a23fe54b748a284173ad96a122_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzMtNi0xLTEtMzQzODQ_45f7f078-660b-4af2-b649-ec1ac11f9793"
      unitRef="usd">820712</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i7da33aa95f3a43abb0a94e5e28dc81d1_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzQtMi0xLTEtMzQzODQvdGV4dHJlZ2lvbjoyZWIwYzJhOGY1MGQ0ZWM2YWFhZGM4NDAzZjI0MzUzMF80_5736e966-5bca-472c-9e84-5eae6dc90c8f">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i66cf95bb11704c8fa28b1cc8873b54c6_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzQtMi0xLTEtMzQzODQvdGV4dHJlZ2lvbjoyZWIwYzJhOGY1MGQ0ZWM2YWFhZGM4NDAzZjI0MzUzMF85_770d5d48-d9eb-4e10-a0d1-8160b7d7d3a5">P15Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i440984280e14489e94de83929fda92ea_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzQtNC0xLTEtMzQzODQ_d427da64-1d9e-4322-b0b6-da38406b5f2f"
      unitRef="usd">369365</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i0f49ad0b1cb54a7283fcda38b5eb92cd_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzQtNi0xLTEtMzQzODQ_19597ee6-8c04-4346-8322-66ca5144985d"
      unitRef="usd">638903</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="ie029fb915f8742fabfa273ab1ade8a96_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzUtMi0xLTEtMzQzODQvdGV4dHJlZ2lvbjo1MjFiYjQ1YWNlYzM0MDQ0OGRkZDEzZmJhODBmZjcwYl80_ad36b072-a772-42b0-a70e-37a28dccb673">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="iec1323af37504488a64c07cf8beb4baf_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzUtMi0xLTEtMzQzODQvdGV4dHJlZ2lvbjo1MjFiYjQ1YWNlYzM0MDQ0OGRkZDEzZmJhODBmZjcwYl85_94221337-7e60-41bb-afb2-5bd2097644fa">P15Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i8a40ef618bc943579e158b9494ffce7d_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzUtNC0xLTEtMzQzODQ_fa605282-9abd-4dfd-b332-dd7d145cb486"
      unitRef="usd">787749</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i57964ce83e4b45c18274c46575c33640_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzUtNi0xLTEtMzQzODQ_601a8df4-7a5c-4056-8783-f36112be264f"
      unitRef="usd">1422439</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzYtNC0xLTEtMzQzODQ_57d37ea6-74e3-453b-b208-68725e289410"
      unitRef="usd">2369224</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzYtNi0xLTEtMzQzODQ_0def6d0b-5c39-497d-bedd-043144fb56c6"
      unitRef="usd">4234788</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzctNC0xLTEtMzQzODQ_5b9a27bc-2a7c-433c-85d2-d4e3ff216ae7"
      unitRef="usd">2085185</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzctNi0xLTEtMzQzODQ_b269f8a2-f182-4a38-acbc-68da6da8bfd4"
      unitRef="usd">3792153</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzgtNC0xLTEtMzQzODQ_10b0c384-6a92-407c-bdf3-8360b45ff9f5"
      unitRef="usd">284039</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZToxNzkzYWNlMGU3MDU0OTc4OTU2MTQ1ODdmNTI0ZGU1Yy90YWJsZXJhbmdlOjE3OTNhY2UwZTcwNTQ5Nzg5NTYxNDU4N2Y1MjRkZTVjXzgtNi0xLTEtMzQzODQ_36fe9a6a-4a74-45e1-ac28-2bef9d19e028"
      unitRef="usd">442635</us-gaap:PropertyPlantAndEquipmentNet>
    <cpix:ScheduleofDepreciationExpenseTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90ZXh0cmVnaW9uOjczOGNkNTBjMWIwMzRiMzM5NzdiYWYzNzI5ZGE0MTkwXzM2MA_ef8ad0d0-52a8-43ad-b231-78b40b7833a4">Depreciation expense was as follows for the years ended December 31:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.916%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:65.512%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.781%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.957%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.781%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.269%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Depreciation expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;260,745&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;235,066&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;</cpix:ScheduleofDepreciationExpenseTableTextBlock>
    <cpix:DepreciationIncludingAmortizationRelatedToLeaseholdImprovements
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZTpkZTAzODJhZGQ5YzI0MTYwYTliNDY2OWEwODJhNjM0Yy90YWJsZXJhbmdlOmRlMDM4MmFkZDljMjQxNjBhOWI0NjY5YTA4MmE2MzRjXzItMi0xLTEtMzQzODQ_e5c2282e-d333-4bcf-af0b-dd8ccb70d1b5"
      unitRef="usd">260745</cpix:DepreciationIncludingAmortizationRelatedToLeaseholdImprovements>
    <cpix:DepreciationIncludingAmortizationRelatedToLeaseholdImprovements
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDUvZnJhZzo3MzhjZDUwYzFiMDM0YjMzOTc3YmFmMzcyOWRhNDE5MC90YWJsZTpkZTAzODJhZGQ5YzI0MTYwYTliNDY2OWEwODJhNjM0Yy90YWJsZXJhbmdlOmRlMDM4MmFkZDljMjQxNjBhOWI0NjY5YTA4MmE2MzRjXzItNC0xLTEtMzQzODQ_fdf594d3-e0e1-407f-8d2e-835b1a54e4d5"
      unitRef="usd">235066</cpix:DepreciationIncludingAmortizationRelatedToLeaseholdImprovements>
    <us-gaap:IntangibleAssetsDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90ZXh0cmVnaW9uOmQ3ZGJjOTFlZmE2YjRmOTBiOGNiZDRiNzcxZDcxN2UzXzIwMDg_46fe1ebe-4499-468c-9a60-e07effb6cd7b">Intangible Assets and Goodwill&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets and Goodwill consisted of the following at December&#160;31, 2022 and 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:86.217%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:59.494%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.915%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.487%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.915%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.489%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Product and license rights&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;49,668,141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;38,543,542&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Less: accumulated amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(21,891,974)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(18,015,112)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Total product and license rights&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27,776,167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,528,430&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Patents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,610,228&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,478,930&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Less: accumulated amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(8,051,018)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7,333,251)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;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;Total patents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,559,210&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,145,679&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;397,974&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;373,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Less: accumulated amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(142,673)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(93,096)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Total trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;255,301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;280,366&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;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;Total intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,590,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,954,475&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;914,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;882,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Product and license rights include assets associated with the Company's acquired products, including those discussed in Note 3, RediTrex, Vibativ and Sancuso.  RediTrex is only represented in 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During 2022 and 2021, the Company recorded an additional $0.2 million in each year in intangible assets for patents, trademarks and capitalized patent costs, including amounts incurred in the protection of the Company's intellectual property.  The Company also recorded an additional $14.1 million in product rights and $0.03 million in goodwill related to the Sancuso acquisition.  These costs will be amortized over the remaining expected useful life of the associated patents.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Amortization expense related to product and license rights, trademarks and patents were as follows for the years ended December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.756%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:65.457%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.981%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.296%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Amortization expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,067,368&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,371,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The expected amortization expense for the Company's current balance of intangible assets are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.769%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:72.907%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.990%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:23.703%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Year ending December 31:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,736,657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 19pt;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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,687,365&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,652,156&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 19pt;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;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,092,961&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;2027 and thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,421,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,590,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:IntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90ZXh0cmVnaW9uOmQ3ZGJjOTFlZmE2YjRmOTBiOGNiZDRiNzcxZDcxN2UzXzIwMDk_0c07489d-317e-45b4-b8ab-f259ab74e8a8">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangible assets and Goodwill consisted of the following at December&#160;31, 2022 and 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:86.217%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:59.494%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.915%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.487%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.915%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.489%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Product and license rights&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;49,668,141&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;38,543,542&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Less: accumulated amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(21,891,974)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(18,015,112)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Total product and license rights&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27,776,167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20,528,430&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Patents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,610,228&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,478,930&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Less: accumulated amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(8,051,018)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(7,333,251)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;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;Total patents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,559,210&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,145,679&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;397,974&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;373,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Less: accumulated amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(142,673)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(93,096)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Total trademarks&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;255,301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;280,366&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;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;Total intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,590,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;23,954,475&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;914,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;882,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFiniteLivedIntangibleAssetsTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i69aeb359c79e41b78bca28b92da3cc0b_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzItMi0xLTEtMzQzODQ_ed910ed3-e1ad-487b-8f52-054f61bf0f86"
      unitRef="usd">49668141</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i463edf77a5cf4cd68d974b7c5d2166e3_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzItNC0xLTEtMzQzODQ_61848a0b-3739-45ad-a09c-daa2845b197b"
      unitRef="usd">38543542</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i69aeb359c79e41b78bca28b92da3cc0b_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzMtMi0xLTEtMzQzODQ_f9abb6ed-b558-4306-b95d-b7c2725988da"
      unitRef="usd">21891974</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i463edf77a5cf4cd68d974b7c5d2166e3_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzMtNC0xLTEtMzQzODQ_37fbaf55-3c90-4678-8672-1718935b77a4"
      unitRef="usd">18015112</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i69aeb359c79e41b78bca28b92da3cc0b_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzQtMi0xLTEtMzQzODQ_249705f6-6a53-4525-9f58-ee31a3fb1dbf"
      unitRef="usd">27776167</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i463edf77a5cf4cd68d974b7c5d2166e3_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzQtNC0xLTEtMzQzODQ_082b81c9-2ad6-4020-a533-c72d3f80eeed"
      unitRef="usd">20528430</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i8d06b1820bd54620a60f0c01d91fbf4d_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzUtMi0xLTEtMzQzODQ_4bf1f048-ac98-4362-9dd6-79d2e2c19e6c"
      unitRef="usd">10610228</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="id3983a09554e4ca699dbcaf2db560e0f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzUtNC0xLTEtMzQzODQ_323c33dc-f93b-407e-817e-4ee80d8410f3"
      unitRef="usd">10478930</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i8d06b1820bd54620a60f0c01d91fbf4d_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzYtMi0xLTEtMzQzODQ_9f234780-0e6d-415d-acd3-e891d8dd32af"
      unitRef="usd">8051018</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="id3983a09554e4ca699dbcaf2db560e0f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzYtNC0xLTEtMzQzODQ_da5b2549-a066-4bee-94a0-142272a28d73"
      unitRef="usd">7333251</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i8d06b1820bd54620a60f0c01d91fbf4d_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzctMi0xLTEtMzQzODQ_3887e98a-94a1-425c-9cc2-fe8efac3c7e1"
      unitRef="usd">2559210</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="id3983a09554e4ca699dbcaf2db560e0f_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzctNC0xLTEtMzQzODQ_a8a44f47-600b-4fdc-ae3c-ec2a5024054d"
      unitRef="usd">3145679</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i574bc1e7d0d2481ea5ad466e8f534855_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzgtMi0xLTEtMzQzODQ_3e944ea0-e85c-4daf-9c32-2109763d24e3"
      unitRef="usd">397974</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ic223906cd81348c4bac59dcace59f34e_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzgtNC0xLTEtMzQzODQ_99b69894-930b-404f-9a1d-5cbe09888ea2"
      unitRef="usd">373462</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i574bc1e7d0d2481ea5ad466e8f534855_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzktMi0xLTEtMzQzODQ_5cd25e3f-f169-4ef4-8533-9e6b3b7302d4"
      unitRef="usd">142673</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ic223906cd81348c4bac59dcace59f34e_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzktNC0xLTEtMzQzODQ_7fe20f19-6224-4316-9d71-3fb35d8e5d6b"
      unitRef="usd">93096</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i574bc1e7d0d2481ea5ad466e8f534855_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzEwLTItMS0xLTM0Mzg0_ff5d0812-54e1-4d43-867b-a545fac5fec7"
      unitRef="usd">255301</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ic223906cd81348c4bac59dcace59f34e_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzEwLTQtMS0xLTM0Mzg0_fd74b421-adcf-4e3d-bd3b-1c02618e551f"
      unitRef="usd">280366</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzExLTItMS0xLTM0Mzg0_35220684-d427-462a-8a79-3d663949022c"
      unitRef="usd">30590678</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzExLTQtMS0xLTM0Mzg0_6498e9d5-e707-4bb0-8e7b-eb3a0844f548"
      unitRef="usd">23954475</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:Goodwill
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzEzLTItMS0xLTM0Mzg0_78b5da45-50fe-48e7-a004-fb4c05368aa4"
      unitRef="usd">914000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTo0MGRmMTc1NDkyYWE0Zjg3YTI3NjRhMzU1YzY3NWUzZi90YWJsZXJhbmdlOjQwZGYxNzU0OTJhYTRmODdhMjc2NGEzNTVjNjc1ZTNmXzEzLTQtMS0xLTM0Mzg0_0face6d7-076c-4b76-b6ab-3a560ad7a33d"
      unitRef="usd">882000</us-gaap:Goodwill>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="idb47557bdc1b4a7091a589c3dd4e833b_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90ZXh0cmVnaW9uOmQ3ZGJjOTFlZmE2YjRmOTBiOGNiZDRiNzcxZDcxN2UzXzE0ODE_9ad1d029-2c2a-433b-b1a1-fce0dd484db3"
      unitRef="usd">200000</us-gaap:PaymentsToAcquireIntangibleAssets>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="i4c75d11680284d93969ed668e797eebc_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90ZXh0cmVnaW9uOmQ3ZGJjOTFlZmE2YjRmOTBiOGNiZDRiNzcxZDcxN2UzXzE0ODE_d72cb995-1bbc-459a-9fdf-8bf9579824a9"
      unitRef="usd">200000</us-gaap:PaymentsToAcquireIntangibleAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="i155bdf692bf44e60a73258a7452baa96_I20220103"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90ZXh0cmVnaW9uOmQ3ZGJjOTFlZmE2YjRmOTBiOGNiZDRiNzcxZDcxN2UzXzEwOTk1MTE2MzEzNjA_b8bb3838-82be-40b8-b159-dbfdb87803c5"
      unitRef="usd">14100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:Goodwill
      contextRef="i155bdf692bf44e60a73258a7452baa96_I20220103"
      decimals="-4"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90ZXh0cmVnaW9uOmQ3ZGJjOTFlZmE2YjRmOTBiOGNiZDRiNzcxZDcxN2UzXzEwOTk1MTE2MzEzODk_1b773546-3e7a-4e2d-b329-be6b984d6432"
      unitRef="usd">30000.00</us-gaap:Goodwill>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90ZXh0cmVnaW9uOmQ3ZGJjOTFlZmE2YjRmOTBiOGNiZDRiNzcxZDcxN2UzXzIwMDU_4afdf478-5d81-41c4-a77f-2680aa0c18cc">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Amortization expense related to product and license rights, trademarks and patents were as follows for the years ended December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.756%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:65.457%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.981%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.296%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Amortization expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,067,368&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,371,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The expected amortization expense for the Company's current balance of intangible assets are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:80.769%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:72.907%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.990%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:23.703%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Year ending December 31:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,736,657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 19pt;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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,687,365&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,652,156&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 19pt;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;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,092,961&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;2027 and thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,421,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;30,590,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTpmMWRhZDk1ZGY1ODc0OTVmYTg1MWFlMTI0ZjY0YThjYS90YWJsZXJhbmdlOmYxZGFkOTVkZjU4NzQ5NWZhODUxYWUxMjRmNjRhOGNhXzItMi0xLTEtMzQzODQ_39f6c8a0-0fd0-473c-8ce0-106beedc1f67"
      unitRef="usd">5067368</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTpmMWRhZDk1ZGY1ODc0OTVmYTg1MWFlMTI0ZjY0YThjYS90YWJsZXJhbmdlOmYxZGFkOTVkZjU4NzQ5NWZhODUxYWUxMjRmNjRhOGNhXzItNC0xLTEtMzQzODQ_81934119-91dd-439e-8553-87961f187957"
      unitRef="usd">4371300</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTowNGU1MTcxNjhhNDE0OWFjYWI2OTJmMDE1Y2MyZWMzMC90YWJsZXJhbmdlOjA0ZTUxNzE2OGE0MTQ5YWNhYjY5MmYwMTVjYzJlYzMwXzEtMi0xLTEtMzQzODQ_0e53515b-190f-425b-bb72-32e90541994c"
      unitRef="usd">4736657</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTowNGU1MTcxNjhhNDE0OWFjYWI2OTJmMDE1Y2MyZWMzMC90YWJsZXJhbmdlOjA0ZTUxNzE2OGE0MTQ5YWNhYjY5MmYwMTVjYzJlYzMwXzItMi0xLTEtMzQzODQ_04b1bdf3-6ebc-4947-8a3f-3621f15718b2"
      unitRef="usd">4687365</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTowNGU1MTcxNjhhNDE0OWFjYWI2OTJmMDE1Y2MyZWMzMC90YWJsZXJhbmdlOjA0ZTUxNzE2OGE0MTQ5YWNhYjY5MmYwMTVjYzJlYzMwXzMtMi0xLTEtMzQzODQ_70055b73-cdce-4de0-babb-92ee5b45171b"
      unitRef="usd">4652156</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTowNGU1MTcxNjhhNDE0OWFjYWI2OTJmMDE1Y2MyZWMzMC90YWJsZXJhbmdlOjA0ZTUxNzE2OGE0MTQ5YWNhYjY5MmYwMTVjYzJlYzMwXzQtMi0xLTEtMzQzODQ_fa8b3617-bd5a-41b7-bcfa-2fe4709b08ef"
      unitRef="usd">4092961</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <cpix:FiniteLivedIntangibleAssetsAmortizationExpenseYearFiveandAfter
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTowNGU1MTcxNjhhNDE0OWFjYWI2OTJmMDE1Y2MyZWMzMC90YWJsZXJhbmdlOjA0ZTUxNzE2OGE0MTQ5YWNhYjY5MmYwMTVjYzJlYzMwXzUtMi0xLTEtMzQzODQ_9cfba557-9afa-4672-b7e2-c59d4e5190a4"
      unitRef="usd">12421539</cpix:FiniteLivedIntangibleAssetsAmortizationExpenseYearFiveandAfter>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMDgvZnJhZzpkN2RiYzkxZWZhNmI0ZjkwYjhjYmQ0Yjc3MWQ3MTdlMy90YWJsZTowNGU1MTcxNjhhNDE0OWFjYWI2OTJmMDE1Y2MyZWMzMC90YWJsZXJhbmdlOjA0ZTUxNzE2OGE0MTQ5YWNhYjY5MmYwMTVjYzJlYzMwXzYtMi0xLTEtMzQzODQ_912db1ac-2dac-4597-ba27-12999d586816"
      unitRef="usd">30590678</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:OtherLiabilitiesDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90ZXh0cmVnaW9uOjc3NjU0NjYwZmRhNDRmYTJhYzMwNGZkMjRkMmI4MWRjXzEyOA_eb041acb-dadc-4dbb-8e98-7bd625a08842">Other Current and Other Long-term Liabilities&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other current liabilities consisted of the following at December&#160;31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:86.378%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:59.567%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.913%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.452%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.913%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.455%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other current liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:6pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Rebates, product returns, administrative fees &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;and service fees&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,347,214&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,680,677&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Employee wages and benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,440,859&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,340,846&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Sancuso related liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,226,725&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Current portion of accrued contingent consideration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,006,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,685,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Current deferred charges&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;614,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Accrued inventory purchases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;609,621&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,342,631&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;943,038&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;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;Total other current liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,587,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,668,303&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:18pt;text-align:justify;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:85.897%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:59.907%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.732%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.556%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.546%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.559%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Other long-term liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Non-current portion of accrued contingent consideration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,931,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,830,096&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Deferred compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,522,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,433,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;131,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;224,786&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Total other long-term liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,585,019&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,488,844&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:OtherLiabilitiesDisclosureTextBlock>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90ZXh0cmVnaW9uOjc3NjU0NjYwZmRhNDRmYTJhYzMwNGZkMjRkMmI4MWRjXzEyOQ_b6d2f2b2-325a-42f3-9d80-6effbd58542c">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other current liabilities consisted of the following at December&#160;31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:86.378%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:59.567%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.913%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.452%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.913%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.455%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Other current liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:6pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Rebates, product returns, administrative fees &lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;and service fees&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,347,214&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,680,677&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Employee wages and benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,440,859&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,340,846&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Sancuso related liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,226,725&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Current portion of accrued contingent consideration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,006,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,685,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Current deferred charges&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;614,551&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Accrued inventory purchases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;609,621&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18,211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,342,631&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;943,038&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;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;Total other current liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;17,587,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,668,303&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <cpix:ProductSalesRelatedLiabilitiesCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzItMi0xLTEtMzQzODQ_27dd1a06-25ec-4ba8-9c73-afe27a90bd7d"
      unitRef="usd">8347214</cpix:ProductSalesRelatedLiabilitiesCurrent>
    <cpix:ProductSalesRelatedLiabilitiesCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzItNC0xLTEtMzQzODQ_47c7dd26-ee07-4c2a-a340-43668ff97853"
      unitRef="usd">3680677</cpix:ProductSalesRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzMtMi0xLTEtMzQzODQ_463dab6b-fe0a-41a7-b104-deff04e281a3"
      unitRef="usd">1440859</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzMtNC0xLTEtMzQzODQ_6abcd81e-7315-4576-97ed-89ff1092325e"
      unitRef="usd">1340846</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <cpix:AccruedLiabilitiesStockPayable
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzQtMi0xLTEtMzQzODQ_c6f08ceb-d882-4179-a607-75091623dc39"
      unitRef="usd">2226725</cpix:AccruedLiabilitiesStockPayable>
    <cpix:AccruedLiabilitiesStockPayable
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzQtNC0xLTEtMzQzODQ_0ada5b9d-4525-4e3b-b26a-5c83632e8767"
      unitRef="usd">0</cpix:AccruedLiabilitiesStockPayable>
    <cpix:BusinessCombinationContingentConsiderationLiabilityAccruedCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzUtMi0xLTEtMzQzODQ_cccfb567-13ca-4481-a55b-9d2c3fdc15ba"
      unitRef="usd">3006310</cpix:BusinessCombinationContingentConsiderationLiabilityAccruedCurrent>
    <cpix:BusinessCombinationContingentConsiderationLiabilityAccruedCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzUtNC0xLTEtMzQzODQ_e2768154-589f-409f-940e-0e04f634583b"
      unitRef="usd">2685531</cpix:BusinessCombinationContingentConsiderationLiabilityAccruedCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzctMi0xLTEtMzc5NDk_b727890f-237c-4de8-97df-93e5dffabcf2"
      unitRef="usd">614551</us-gaap:ContractWithCustomerLiabilityCurrent>
    <us-gaap:ContractWithCustomerLiabilityCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzctNC0xLTEtMzc5NDk_8adccee8-28f1-414d-a5f0-c433f1d7b437"
      unitRef="usd">0</us-gaap:ContractWithCustomerLiabilityCurrent>
    <cpix:AccruedLiabilitiesInventoryPurchases
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzctMi0xLTEtMzQzODQ_7e694194-ba93-448d-a28b-455668d78fe1"
      unitRef="usd">609621</cpix:AccruedLiabilitiesInventoryPurchases>
    <cpix:AccruedLiabilitiesInventoryPurchases
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzctNC0xLTEtMzQzODQ_8e1bd4c1-0b04-43db-a761-d537049ad6c7"
      unitRef="usd">18211</cpix:AccruedLiabilitiesInventoryPurchases>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzktMi0xLTEtMzQzODQ_3e9ad4ec-4e60-4daa-a4d8-08140f90cb1e"
      unitRef="usd">1342631</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzktNC0xLTEtMzQzODQ_ba78b7f7-4edd-41ac-9cbc-70a68ba6be87"
      unitRef="usd">943038</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzEwLTItMS0xLTM0Mzg0_d12a9f08-d6bf-48d6-9de6-918214fef2c9"
      unitRef="usd">17587911</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZToyYzdjYmRjYTUyNDc0N2FhOTA0NzQ5M2M0YTBkMDcwYS90YWJsZXJhbmdlOjJjN2NiZGNhNTI0NzQ3YWE5MDQ3NDkzYzRhMGQwNzBhXzEwLTQtMS0xLTM0Mzg0_e299adf3-9f9f-4057-954e-e41d56b1376e"
      unitRef="usd">8668303</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:OtherNoncurrentLiabilitiesTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90ZXh0cmVnaW9uOjc3NjU0NjYwZmRhNDRmYTJhYzMwNGZkMjRkMmI4MWRjXzEzMg_988f86e7-c424-48b7-8a6b-af4305bfed6a">&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:85.897%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:59.907%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.732%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.556%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.546%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.559%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Other long-term liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Non-current portion of accrued contingent consideration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,931,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,830,096&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Deferred compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,522,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,433,962&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;131,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;224,786&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Total other long-term liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,585,019&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,488,844&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:OtherNoncurrentLiabilitiesTableTextBlock>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZTo4YjUzMDljNjU1MWI0MGJlYTQ3MWZlZmE3NWM5ODk0NC90YWJsZXJhbmdlOjhiNTMwOWM2NTUxYjQwYmVhNDcxZmVmYTc1Yzk4OTQ0XzItMi0xLTEtMzQzODQ_aebe7246-f35d-4b89-9ee4-12bed522c15c"
      unitRef="usd">4931513</us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZTo4YjUzMDljNjU1MWI0MGJlYTQ3MWZlZmE3NWM5ODk0NC90YWJsZXJhbmdlOjhiNTMwOWM2NTUxYjQwYmVhNDcxZmVmYTc1Yzk4OTQ0XzItNC0xLTEtMzQzODQ_8fffdead-baa7-4e19-9363-4a121c978161"
      unitRef="usd">3830096</us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent>
    <us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZTo4YjUzMDljNjU1MWI0MGJlYTQ3MWZlZmE3NWM5ODk0NC90YWJsZXJhbmdlOjhiNTMwOWM2NTUxYjQwYmVhNDcxZmVmYTc1Yzk4OTQ0XzMtMi0xLTEtMzQzODQ_f44a0d8e-1fe4-483a-898f-bed53eab315f"
      unitRef="usd">2522506</us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent>
    <us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZTo4YjUzMDljNjU1MWI0MGJlYTQ3MWZlZmE3NWM5ODk0NC90YWJsZXJhbmdlOjhiNTMwOWM2NTUxYjQwYmVhNDcxZmVmYTc1Yzk4OTQ0XzMtNC0xLTEtMzQzODQ_d2d315d8-d80c-4a4b-bbe7-a7749f4df014"
      unitRef="usd">3433962</us-gaap:DeferredCompensationLiabilityClassifiedNoncurrent>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesNoncurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZTo4YjUzMDljNjU1MWI0MGJlYTQ3MWZlZmE3NWM5ODk0NC90YWJsZXJhbmdlOjhiNTMwOWM2NTUxYjQwYmVhNDcxZmVmYTc1Yzk4OTQ0XzQtMi0xLTEtMzQzODQ_6bb3bbe1-6850-42af-86d0-6e6f5abd7ed3"
      unitRef="usd">131000</us-gaap:AccountsPayableAndAccruedLiabilitiesNoncurrent>
    <us-gaap:AccountsPayableAndAccruedLiabilitiesNoncurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZTo4YjUzMDljNjU1MWI0MGJlYTQ3MWZlZmE3NWM5ODk0NC90YWJsZXJhbmdlOjhiNTMwOWM2NTUxYjQwYmVhNDcxZmVmYTc1Yzk4OTQ0XzQtNC0xLTEtMzQzODQ_7f6868a5-8a6c-4e25-801f-a0333442036f"
      unitRef="usd">224786</us-gaap:AccountsPayableAndAccruedLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZTo4YjUzMDljNjU1MWI0MGJlYTQ3MWZlZmE3NWM5ODk0NC90YWJsZXJhbmdlOjhiNTMwOWM2NTUxYjQwYmVhNDcxZmVmYTc1Yzk4OTQ0XzUtMi0xLTEtMzQzODQ_95297be3-c08e-4958-a482-da8846379568"
      unitRef="usd">7585019</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTEvZnJhZzo3NzY1NDY2MGZkYTQ0ZmEyYWMzMDRmZDI0ZDJiODFkYy90YWJsZTo4YjUzMDljNjU1MWI0MGJlYTQ3MWZlZmE3NWM5ODk0NC90YWJsZXJhbmdlOjhiNTMwOWM2NTUxYjQwYmVhNDcxZmVmYTc1Yzk4OTQ0XzUtNC0xLTEtMzQzODQ_38cda877-efbe-46ad-907f-83a76cf05a22"
      unitRef="usd">7488844</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzM5ODE_d5ac46eb-ece6-4bc7-83e4-218ab615915c">Debt&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On December 31, 2021, the Company entered into a Fifth Amendment to the Revolving Credit Note and Sixth Amendment (the "Sixth Amendment") to Revolving Credit Loan Agreement with Pinnacle Bank (the "Pinnacle Agreement"). The Sixth Amendment increased the principal amount by $5 million to $20 million. On October 28, 2021, the Company entered into a Fourth Amendment to the Revolving Credit Note and Fifth Amendment to Revolving Credit Loan Agreement with Pinnacle Bank. Among other terms, the Fourth Amendment extended the maturity date to October 1, 2024.  The Pinnacle Agreement includes specific financial covenants including Debt Ratio and Tangible Capital Ratio.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2022, the Company and Pinnacle Bank agreed to modify the financial covenants to align with the current use of the line of credit.  On September 29, 2022, the Company entered into the Ninth Amendment to the Revolving Credit Loan Agreement with Pinnacle Bank (as amended, the "Pinnacle Agreement") to update the Funded Debt Ratio to mean the ratio of (i) Funded Debt less the amount of Unrestricted Cash in excess of $8,500,000, to (ii) EBITDA, as determined at the end of each fiscal quarter on a rolling four (4) quarter basis.  For the year ended December&#160;31, 2022, we were in compliance with the Funded Debt Ratio financial covenant. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; The Company had $16.2 million and $15.0 million in borrowings outstanding under the Pinnacle Agreement at December&#160;31, 2022 and  2021, respectively.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; The interest rate on the Pinnacle Agreement is based on LIBOR plus an interest rate spread. The pricing under the Fourth Amendment provides for an interest rate spread of 1.75% to 2.75% above LIBOR with a minimum LIBOR of 0.90% (representing an interest rate of 6.875% at December&#160;31, 2022).  In addition, a fee of 0.25% per year is charged on the unused line of credit.  Interest and the unused line fee are payable quarterly.  In 2022, the LIBOR benchmark rate is expected to be discontinued. When the LIBOR rate is no longer available, the Pinnacle Agreement calls for a new Benchmark rate to be used to determine the interest rate for the Agreement.  It is expected that SOFR will become the replacement benchmark.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;  Borrowings under the line of credit are collateralized by substantially all of our assets. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Paycheck Protection Program Loan&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On April 20, 2020, Cumberland received the funding of a loan from Pinnacle Bank in the aggregate amount of $2,187,140 pursuant to the Paycheck Protection Program (the &#x201c;PPP&#x201d;) under the Federal Coronavirus Aid, Relief, and Economic Security Act ("CARES Act"), which was enacted March 27, 2020. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The PPP is administered by the U.S. Small Business Administration ("SBA").  The loan was scheduled to  mature April 14, 2022, and bears interest at a rate of 1.0% per year, payable monthly. The loan could be prepaid at any time prior to maturity with no prepayment penalties. Funds from the loan are to be used to maintain payroll, continue group health care benefits and pay for rent and utilities. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Under the terms of the PPP, certain amounts of the loan may be forgiven if they are used for qualifying expenses as described in the CARES Act, including qualifying payroll costs, covered rent payments, and covered utilities.  From the date of funding the Company has used the loan amount for such qualifying expenses. Cumberland has elected to account for the proceeds of the loan as a government grant under &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;International Accounting Standard 20 ("IAS 20"), Accounting for Government Grants and Disclosure of Government Assistance. &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The permitted analogous use of  IAS 20 outlines a model for the accounting for government assistance, including forgivable loans. As a result, the Company has recorded the $2,187,140 as a deferred income liability, which is included as a component of other current liabilities on the consolidated balance sheet as of December&#160;31, 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cumberland applied for this loan after carefully considering, with its bank, the eligibility criteria to participate in this program, and determining that Cumberland met these criteria. The Company evaluated and provided information on our payroll and other qualifying expenses to determine the amount of PPP funds to apply for. &lt;/span&gt;&lt;/div&gt;Cumberland has not laid off or furloughed any employees as a result of the COVID-19 pandemic and, based on assistance from the PPP loan, the Company currently does not foresee doing so. In October 2020, the Company submitted a request for forgiveness of the PPP loan. The request was approved by the lender, Pinnacle Bank, who then submitted it to SBA for the SBA's review and approval. On June 11, 2021, the Company received a notice from the SBA that the full amount of the loan was forgiven. The Company accounted for the forgiveness of the loan under IAS 20 and recorded the $2,187,140 as other income during the year ended December 31, 2021.</us-gaap:DebtDisclosureTextBlock>
    <cpix:LineOfCreditFacilityAdditionalBorrowingCapacity
      contextRef="i6e9d77deb33f4194ba7a35755cec59a1_I20221231"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzI4OQ_2a46dde0-e70e-44ea-8571-014f44db5ee3"
      unitRef="usd">5000000</cpix:LineOfCreditFacilityAdditionalBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity
      contextRef="i6e9d77deb33f4194ba7a35755cec59a1_I20221231"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzI5NQ_24424c00-3d64-4d1d-8c48-d74a202fae45"
      unitRef="usd">20000000</us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity>
    <cpix:DebtInstrumentCovenantUnrestrictedCashThreshold
      contextRef="iac3baa3852034481ab2a2c089e20758c_I20220929"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzI3NDg3NzkwNzQwMTk_6a6f3bde-b8d1-47bd-8628-bf428ba3c767"
      unitRef="usd">8500000</cpix:DebtInstrumentCovenantUnrestrictedCashThreshold>
    <us-gaap:LongTermLineOfCredit
      contextRef="i7f310f91304f4cc89cb705d8722a8d08_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzY4Mw_d2fab109-498c-4ba8-ac2e-ffd53ca8238c"
      unitRef="usd">16200000</us-gaap:LongTermLineOfCredit>
    <us-gaap:LongTermLineOfCredit
      contextRef="i28084a381e4f4f1491853ea7f60c1025_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzEwOTk1MTE2MzE3NzU_f018d467-a9e7-4c4e-9921-2503a526a3da"
      unitRef="usd">15000000</us-gaap:LongTermLineOfCredit>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="i4808a45eee974fbfbe990af48bc945ad_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzkxNw_4984ff15-0620-4427-a019-4951dcd1c5be"
      unitRef="number">0.0175</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="i061a02db1e2b4e1792f9dfd792d617e4_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzkyMw_e0593284-a0a1-4f7a-b609-20df3fa11cd0"
      unitRef="number">0.0275</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="ic015a17daf5344f9a4de26b8e32f3873_I20221231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzk2Mg_48f9a57c-95e1-405e-9e7d-b8fd87cacbc4"
      unitRef="number">0.0090</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="i755231ed00d14acf800c9c3404c31e20_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzk5OQ_75566fc8-be15-4168-ab40-c974aa942016"
      unitRef="number">0.06875</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="ib8724ef42665454e9a5d3f598e52ab38_D20170731-20170731"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzEwMzM_bb30fdf0-bcb2-4eac-a0d2-1d0c801932ad"
      unitRef="number">0.0025</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <cpix:TheCoronavirusAidReliefAndEconomicSecurityActLoanProceedsReceived
      contextRef="ic5e93a72679646699ff0eec55311987d_D20200420-20200420"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzE2MDM_a5230a0d-ebc1-4dd7-af4e-5060257d7dc9"
      unitRef="usd">2187140</cpix:TheCoronavirusAidReliefAndEconomicSecurityActLoanProceedsReceived>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="icf6a2ed9c9c1455893589f101ba5b4cc_I20200420"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzE5Mzk_b4700785-9ae8-4b11-a7f2-98f5893f5733"
      unitRef="number">0.010</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <cpix:TheCoronavirusAidReliefAndEconomicSecurityActLoanProceedsReceived
      contextRef="ib78383e8396e49768661e5b1015fc86b_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzI4ODU_701f2b74-ce93-45b7-a307-7b0c377eef89"
      unitRef="usd">2187140</cpix:TheCoronavirusAidReliefAndEconomicSecurityActLoanProceedsReceived>
    <cpix:TheCoronavirusAidReliefAndEconomicSecurityActLoanProceedsReceived
      contextRef="ib78383e8396e49768661e5b1015fc86b_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTQvZnJhZzo0MTA4NjE1NDM4YTA0YWFkYmQ4OWFiZWFlYzY3NmE5My90ZXh0cmVnaW9uOjQxMDg2MTU0MzhhMDRhYWRiZDg5YWJlYWVjNjc2YTkzXzM5Mzc_14122d62-fd71-4948-9dfe-d4ba856c3a37"
      unitRef="usd">2187140</cpix:TheCoronavirusAidReliefAndEconomicSecurityActLoanProceedsReceived>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzU0MTU_50e8e697-7ec0-400e-b99f-e985cf4a74cf">Shareholders&#x2019; Equity&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;(a)&#160;&#160;&#160;&#160;Initial Public Offering&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On August&#160;10, 2009, the Company completed its initial public offering of 5,000,000 shares of common stock at a price of $17.00 per share, raising gross proceeds of $85.0 million. After deducting underwriting discounts of approximately $6.0 million and offering costs incurred of approximately $4.2 million, the net proceeds to the Company were approximately $74.8 million. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;(b)&#160;&#160;&#160;&#160;Preferred Stock&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company is authorized to issue 20,000,000&#160;shares of preferred stock. The Board of Directors is authorized to divide these shares into classes or series, and to fix and determine the relative rights, preferences, qualifications and limitations of the shares of any class or series so established. At December&#160;31, 2022 and 2021, there was no preferred stock outstanding.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;padding-left: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:120%"&gt;(c)&#160;&#160;&#160;&#160;Common Stock&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:7pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During 2022 and 2021, the Company issued 171,655 shares and 192,684  shares of common stock, respectively, as a result of restricted shares vesting as well as other common share issuances.  There were no option exercise transactions during 2022 and  2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;(d)&#160;&#160;&#160;&#160;Share Repurchases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company currently has a share repurchase program to repurchase up to $10 million of its common stock pursuant to Rule 10b-18 of the Securities Exchange Act, as amended. In January 2019, the Company's Board of Directors established the current $10 million repurchase program to replace the prior authorizations. The Company repurchased 367,793 shares and 438,359 shares of common stock for approximately $1.0 million and $1.4 million during the years ended December&#160;31, 2022 and 2021, respectively. There remains $3.8 million available under the current repurchase program available for share repurchases at December&#160;31, 2022.&lt;/span&gt;&lt;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:SaleOfStockTransactionDate
      contextRef="idd6efbaba58c4153b8a8b424c820d032_D20090809-20090810"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzYy_531ba6c5-60a6-4e74-bd36-16e4516163af">2009-08-10</us-gaap:SaleOfStockTransactionDate>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="idd6efbaba58c4153b8a8b424c820d032_D20090809-20090810"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzExOQ_df8e27cc-0fb7-4d1f-aa86-6069846ad242"
      unitRef="shares">5000000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <cpix:StockIssuedDuringPeriodPricePerShareNewIssues
      contextRef="idd6efbaba58c4153b8a8b424c820d032_D20090809-20090810"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzE2MA_d31a83f8-0d30-412e-8949-3e8a66b045ec"
      unitRef="usdPerShare">17.00</cpix:StockIssuedDuringPeriodPricePerShareNewIssues>
    <cpix:StockIssuedDuringPeriodGrossProceedsFromInitialPublicOffering
      contextRef="idd6efbaba58c4153b8a8b424c820d032_D20090809-20090810"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzIwMQ_165e8d7f-a912-4017-8dfd-ad817730f8a7"
      unitRef="usd">85000000</cpix:StockIssuedDuringPeriodGrossProceedsFromInitialPublicOffering>
    <cpix:StockIssuedDuringPeriodNewSharesUnderwritingDiscounts
      contextRef="idd6efbaba58c4153b8a8b424c820d032_D20090809-20090810"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzI2Mg_55502961-0223-4808-8b0a-66f07c1bd99d"
      unitRef="usd">6000000</cpix:StockIssuedDuringPeriodNewSharesUnderwritingDiscounts>
    <us-gaap:PaymentsOfStockIssuanceCosts
      contextRef="idd6efbaba58c4153b8a8b424c820d032_D20090809-20090810"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzMxMQ_d3c5ab0b-3b26-430f-a8ae-795447ad63b1"
      unitRef="usd">4200000</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:ProceedsFromIssuanceInitialPublicOffering
      contextRef="idd6efbaba58c4153b8a8b424c820d032_D20090809-20090810"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzM2Nw_373bdd4c-72b1-40c6-924b-6820d1e46480"
      unitRef="usd">74800000</us-gaap:ProceedsFromIssuanceInitialPublicOffering>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzQyNw_479041e2-92c1-4894-ba5c-6508f3924f1f"
      unitRef="shares">20000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzcwOA_29855f1c-0369-499f-8ba4-a859bf204111"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzcwOA_f6f57106-ae82-4362-8daa-60a229b18d30"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="i72718240c04b4ec2ba4b82ad98b68277_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1Xzc5OA_9e77c040-6e8f-4b56-bcba-aa02d4e39417"
      unitRef="shares">171655</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="i335f36ffc1e6419c9c6d44aa4dfbab4e_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzEwOTk1MTE2MzY5Nzc_056e4d57-6913-493f-9a03-1e95790256af"
      unitRef="shares">192684</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="i1061cd07c59c4fc190c499065ffea5e3_I20100531"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzIwNDE_5d4e89d1-1fe5-4c0d-a906-c72ded2350e8"
      unitRef="usd">10000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="i1061cd07c59c4fc190c499065ffea5e3_I20100531"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzIyMDc_9bdde191-5ac8-40db-be3b-bc1e6831586d"
      unitRef="usd">10000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i3c8e554b334e4bf692425f706564fc4d_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzIyOTA_1a7eed0e-a442-491f-aa29-0d7e5c6f81a4"
      unitRef="shares">367793</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="ia90dbbcb1d5e494382b065f737613908_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzIzMDE_63282362-f6d9-4cbe-ad1a-a826de339f60"
      unitRef="shares">438359</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i3c8e554b334e4bf692425f706564fc4d_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzIzNTk_98ed8ac9-67d2-4601-8c95-730580dd1e93"
      unitRef="usd">1000000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="ia90dbbcb1d5e494382b065f737613908_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzIzNjM_2cc381fa-05e8-4d64-be69-22154c60519a"
      unitRef="usd">1400000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMTcvZnJhZzozYzY5Y2Y4NGE4Y2U0MjhiYmUxYThlMWNjMDliNDkzNS90ZXh0cmVnaW9uOjNjNjljZjg0YThjZTQyOGJiZTFhOGUxY2MwOWI0OTM1XzI0NDA_55dc105a-f5af-486b-93d0-f9d0ae5b3efe"
      unitRef="usd">3800000</us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90ZXh0cmVnaW9uOjRkYTI0ODdjYTQwNjRhYmI4ZDhiMzE2NzY5Yjg0ZTZhXzMzMg_b6453cfe-be3e-4000-9fe6-e392bf88547f">Earnings (Loss) Per Share &lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table shows the computation of the numerator and the denominator used to calculate diluted earnings (loss) per share for the years ended December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.916%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:67.148%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.945%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.793%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.781%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.633%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Numerator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Net income (loss) from continuing operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,650,039)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,597,121)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Discontinued operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,994,322&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Net income (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,650,039)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,602,799)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net loss at subsidiary attributable to noncontrolling interests&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;79,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;95,212&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&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) attributable to common shareholders&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,570,241)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,507,587)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Denominator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Weighted-average shares outstanding &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,563,592&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,904,834&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Weighted-average shares outstanding &#x2013; diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,563,592&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,904,834&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's anti-dilutive restricted shares and stock options outstanding were as follows for the years ended December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.153%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.066%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.966%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.233%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.800%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.235%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Anti-dilutive shares and options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;227,050&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;183,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90ZXh0cmVnaW9uOjRkYTI0ODdjYTQwNjRhYmI4ZDhiMzE2NzY5Yjg0ZTZhXzMyOQ_3820e561-4752-4d3e-aa39-3187eb00fbbe">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table shows the computation of the numerator and the denominator used to calculate diluted earnings (loss) per share for the years ended December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.916%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:67.148%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.945%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.793%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.781%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.633%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Numerator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Net income (loss) from continuing operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,650,039)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,597,121)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Discontinued operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,994,322&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Net income (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,650,039)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,602,799)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Net loss at subsidiary attributable to noncontrolling interests&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;79,798&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;95,212&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&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) attributable to common shareholders&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(5,570,241)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,507,587)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Denominator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Weighted-average shares outstanding &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,563,592&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,904,834&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Weighted-average shares outstanding &#x2013; diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,563,592&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;14,904,834&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzMtMi0xLTEtMzQzODQ_8e704678-0623-47f7-976a-9e504b124692"
      unitRef="usd">-5650039</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzMtNC0xLTEtMzQzODQ_ff64fb6b-db67-4784-9fb6-67df26533f59"
      unitRef="usd">-5597121</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzQtMi0xLTEtMzQzODQ_f67cb05b-98cd-4076-b7f8-abd264f3c575"
      unitRef="usd">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzQtNC0xLTEtMzQzODQ_4207b02a-8aee-429a-a0ab-c761f4d74561"
      unitRef="usd">1994322</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax>
    <us-gaap:ProfitLoss
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzUtMi0xLTEtMzQzODQ_20c34513-8d42-4ce0-a686-e966c84de141"
      unitRef="usd">-5650039</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzUtNC0xLTEtMzQzODQ_4d7bfefe-9479-4f1e-9c6c-c287085bca14"
      unitRef="usd">-3602799</us-gaap:ProfitLoss>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzYtMi0xLTEtMzQzODQ_b61ce7e9-df0d-44fb-98d4-26d6b618e9fc"
      unitRef="usd">-79798</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzYtNC0xLTEtMzQzODQ_9d29cd60-538e-4a3c-a017-88646f4ab240"
      unitRef="usd">-95212</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLoss
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzctMi0xLTEtMzQzODQ_5049b4b1-e863-4a9a-b9af-fa0fb899c1a2"
      unitRef="usd">-5570241</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzctNC0xLTEtMzQzODQ_0873b96f-570b-496f-97a2-b6620ba0e23c"
      unitRef="usd">-3507587</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzktMi0xLTEtMzQzODQ_6a06b5c8-cbe1-48f9-b206-a2f0aa931ff9"
      unitRef="shares">14563592</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzktNC0xLTEtMzQzODQ_3d3efbef-7a12-4391-9370-ef2cdd85ac62"
      unitRef="shares">14904834</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzExLTItMS0xLTM0Mzg0_158e62d8-1a26-4891-8ed0-1713e4220dce"
      unitRef="shares">14563592</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpkNGUwYzg3ZTc0YTM0YzYwOTFkNjQwODIyNzI2Mzg4Zi90YWJsZXJhbmdlOmQ0ZTBjODdlNzRhMzRjNjA5MWQ2NDA4MjI3MjYzODhmXzExLTQtMS0xLTM0Mzg0_f5df5ed5-bf9a-4c6b-b87e-1d9474280c28"
      unitRef="shares">14904834</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90ZXh0cmVnaW9uOjRkYTI0ODdjYTQwNjRhYmI4ZDhiMzE2NzY5Yjg0ZTZhXzMzMA_7a677ec6-f58f-43cc-96b2-97a05ec8069c">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's anti-dilutive restricted shares and stock options outstanding were as follows for the years ended December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.153%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.066%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.966%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.233%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.800%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.235%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Anti-dilutive shares and options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;227,050&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;183,300&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpiYzU0NDhhZDI1MzQ0MWMyODlkNGJjYTg4NjZmYjQ0Ny90YWJsZXJhbmdlOmJjNTQ0OGFkMjUzNDQxYzI4OWQ0YmNhODg2NmZiNDQ3XzItMi0xLTEtMzQzODQ_62c0ee97-00cb-46e5-9282-a6e7b0c010c3"
      unitRef="shares">227050</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjAvZnJhZzo0ZGEyNDg3Y2E0MDY0YWJiOGQ4YjMxNjc2OWI4NGU2YS90YWJsZTpiYzU0NDhhZDI1MzQ0MWMyODlkNGJjYTg4NjZmYjQ0Ny90YWJsZXJhbmdlOmJjNTQ0OGFkMjUzNDQxYzI4OWQ0YmNhODg2NmZiNDQ3XzItNC0xLTEtMzQzODQ_66aa6a58-2025-477e-aaa4-efe34cb399bf"
      unitRef="shares">183300</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90ZXh0cmVnaW9uOjU1MzQwODY1MzlhYTRjNjk4NzFiN2FlNzdiZTdhODJlXzE2Mjc_5bb32a41-24ca-4551-a86c-d9c42bee2f2b">Income Taxes&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The components of the Company's net deferred tax assets at December&#160;31 are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:90.544%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:61.377%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.861%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.599%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.861%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.602%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;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;Deferred Tax Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Net operating loss and tax credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,164,754&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,817,070&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Property and equipment and intangibles&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;264,653&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;222,893&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,121,800&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;866,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Capitalized research cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,481,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Allowance for accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;145,803&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;83,931&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Reserve for expired product&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;654,148&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;457,723&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Inventory&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;217,025&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;104,824&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Deferred charges&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,156,150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,303,664&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Cumulative compensation costs incurred on deductible equity awards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;635,989&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;834,070&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 25pt;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;Total deferred tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,708,719&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,824,175&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;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;Deferred Tax Liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Operating lease right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,150,935)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(62,253)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;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;Net deferred tax assets, before valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,557,784&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,761,922&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Less: deferred tax asset valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(21,557,784)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(19,761,922)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;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;Net deferred tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the amount and year of expiration of the Company's federal and state net operating loss carryforwards as of December&#160;31, 2022:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:90.544%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:61.377%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.861%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.599%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.861%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.602%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Years of expiration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;251,811&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;2024-2042&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;46,656,666&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,790,944&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Indefinite Period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,405,835&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;433,203&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Total federal and state net operating loss carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;53,062,501&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;56,475,958&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Income tax (expense) benefit includes the following components for the years ended December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.038%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:64.595%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;State and other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;68,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,891&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;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;Total current income tax (expense) benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;68,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,891&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Deferred:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;61,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(61,678)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 25pt;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;Total deferred income tax (expense) benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;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;Total income tax (expense) benefit &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;68,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,891&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s effective income tax rate for 2022 and 2021 reconciles with the federal statutory tax rate as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.038%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:64.595%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Federal tax expense at statutory rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;State income tax expense (net of federal income tax benefit)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Permanent differences associated with general business credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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 valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(22)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(19)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Other permanent differences&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Net income tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company believes that it is not more likely than not that its net deferred tax assets will be realized.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;  &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As such, the net deferred tax assets are fully offset with a valuation allowance as of the periods ended December&#160;31, 2022 and  2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:22.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, the Company has general business credit carryforwards of $1.5&#160;million.  These credit carryforwards will expire in years 2023 through 2042.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;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;  &lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.596%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:78.046%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.949%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.605%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Years of expiration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&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="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;200,825&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024-2042&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,319,161&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total federal and state credit carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,519,986&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company expects it will continue to pay minimal taxes in future periods through the continued utilization of net operating loss carryforwards, as it is able to achieve taxable income through its operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company is no longer subject to U.S. federal tax examinations for tax years before 2019, and with few exceptions, the Company is not subject to examination by state tax authorities for tax years which ended before 2019.  Loss carryforwards and credit carryforwards generated or utilized in years earlier than 2019 remain subject to examination and adjustment.  During 2012, the 2009 federal tax return was examined by the Internal Revenue Service with no significant findings or adjustments.  The Company has no unrecognized tax benefits at December 31, 2022 and 2021.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90ZXh0cmVnaW9uOjU1MzQwODY1MzlhYTRjNjk4NzFiN2FlNzdiZTdhODJlXzE2MjM_e8dde4a0-23fd-4ccc-871c-ead761f5bdc8">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The components of the Company's net deferred tax assets at December&#160;31 are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:90.544%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:61.377%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.861%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.599%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.861%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.602%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;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;Deferred Tax Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Net operating loss and tax credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,164,754&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;16,817,070&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Property and equipment and intangibles&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;264,653&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;222,893&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,121,800&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;866,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Capitalized research cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,481,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Allowance for accounts receivable&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;145,803&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;83,931&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Reserve for expired product&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;654,148&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;457,723&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Inventory&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;217,025&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;104,824&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Deferred charges&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,156,150&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,303,664&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Cumulative compensation costs incurred on deductible equity awards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;635,989&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;834,070&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 25pt;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;Total deferred tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22,708,719&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,824,175&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;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;Deferred Tax Liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Operating lease right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,150,935)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Intangible assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(62,253)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;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;Net deferred tax assets, before valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,557,784&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,761,922&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Less: deferred tax asset valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(21,557,784)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(19,761,922)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;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;Net deferred tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <cpix:DeferredTaxAssetsOperatingLossCarryforwardsAndTaxCreditCarryforwards
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzMtMi0xLTEtMzQzODQ_915f05e9-5bda-4fbf-9615-2c4bb434156e"
      unitRef="usd">16164754</cpix:DeferredTaxAssetsOperatingLossCarryforwardsAndTaxCreditCarryforwards>
    <cpix:DeferredTaxAssetsOperatingLossCarryforwardsAndTaxCreditCarryforwards
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzMtNC0xLTEtMzQzODQ_d90af3d9-7dc1-42e7-99d1-718b0222cb51"
      unitRef="usd">16817070</cpix:DeferredTaxAssetsOperatingLossCarryforwardsAndTaxCreditCarryforwards>
    <cpix:DeferredTaxAssetsPropertyAndEquipmentAndIntangibles
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzQtMi0xLTEtMzQzODQ_7166ec7f-73df-45ca-a646-00b4c6d5b1c0"
      unitRef="usd">264653</cpix:DeferredTaxAssetsPropertyAndEquipmentAndIntangibles>
    <cpix:DeferredTaxAssetsPropertyAndEquipmentAndIntangibles
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzQtNC0xLTEtMzQzODQ_84a5f344-7567-470b-b174-826c3ffed0bb"
      unitRef="usd">222893</cpix:DeferredTaxAssetsPropertyAndEquipmentAndIntangibles>
    <cpix:DeferredTaxAssetOperatingLeaseLiabilities
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzUtMi0xLTEtMzg2MDc_dce67d3a-c3b9-4828-aeff-ce983823789f"
      unitRef="usd">1121800</cpix:DeferredTaxAssetOperatingLeaseLiabilities>
    <cpix:DeferredTaxAssetOperatingLeaseLiabilities
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzUtNC0xLTEtMzg2MDc_e5f1fc46-d2b0-4212-bd95-e23707101781"
      unitRef="usd">0</cpix:DeferredTaxAssetOperatingLeaseLiabilities>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzYtMi0xLTEtMzg2MDc_2ef2ba7c-0f43-49d9-9d53-6baa2ece9f6a"
      unitRef="usd">866942</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzYtNC0xLTEtMzg2MDc_8be81636-edb3-4e0d-885c-080d59d88949"
      unitRef="usd">0</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzctMi0xLTEtMzg2MDc_43580677-a5da-4712-aaaa-7ae663b09912"
      unitRef="usd">1481455</us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment>
    <us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzctNC0xLTEtMzg2MDc_1d4bc2a3-02eb-4b3e-8e60-fcc5bd3cc352"
      unitRef="usd">0</us-gaap:DeferredTaxAssetsInProcessResearchAndDevelopment>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzUtMi0xLTEtMzQzODQ_0182e6ef-f91c-4c82-9010-3202de2f82be"
      unitRef="usd">145803</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzUtNC0xLTEtMzQzODQ_ae863a18-b443-4c7a-b64a-ec7630efee5c"
      unitRef="usd">83931</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsAllowanceForDoubtfulAccounts>
    <cpix:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReservesForExpiredProduct
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzYtMi0xLTEtMzQzODQ_1d450590-dd1a-4002-8440-6b8960106796"
      unitRef="usd">654148</cpix:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReservesForExpiredProduct>
    <cpix:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReservesForExpiredProduct
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzYtNC0xLTEtMzQzODQ_c83e18e3-99b4-47b2-8e0c-798770e45f0d"
      unitRef="usd">457723</cpix:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsReservesForExpiredProduct>
    <us-gaap:DeferredTaxAssetsInventory
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzctMi0xLTEtMzQzODQ_28cfa6c9-b28c-48ca-a820-bf3f660dab6a"
      unitRef="usd">217025</us-gaap:DeferredTaxAssetsInventory>
    <us-gaap:DeferredTaxAssetsInventory
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzctNC0xLTEtMzQzODQ_883bcdb8-25e6-43c1-a8d0-bb0219301b27"
      unitRef="usd">104824</us-gaap:DeferredTaxAssetsInventory>
    <cpix:DeferredTaxAssetsDeferredCharges
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzgtMi0xLTEtMzQzODQ_ace9da83-fb03-4ec8-a74d-fc882cee35e9"
      unitRef="usd">1156150</cpix:DeferredTaxAssetsDeferredCharges>
    <cpix:DeferredTaxAssetsDeferredCharges
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzgtNC0xLTEtMzQzODQ_e92f0fd9-fe6d-4f71-a037-5a8f62376fcc"
      unitRef="usd">1303664</cpix:DeferredTaxAssetsDeferredCharges>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzktMi0xLTEtMzQzODQ_7168d7e9-53fb-405f-8719-7335ca4cd3de"
      unitRef="usd">635989</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzktNC0xLTEtMzQzODQ_e9e6343e-61e9-484b-aa58-5835c0336e0f"
      unitRef="usd">834070</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzEwLTItMS0xLTM0Mzg0_9d07038b-4be1-4afa-9d1e-74e65f53994a"
      unitRef="usd">22708719</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzEwLTQtMS0xLTM0Mzg0_a62466ec-a2b0-40f6-a71d-e7cf75cd0f0a"
      unitRef="usd">19824175</us-gaap:DeferredTaxAssetsGross>
    <cpix:DeferredTaxLiabilityOperatingLeaseRightOfUseAssets
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzE2LTItMS0xLTM4NjY1_7ebe5cdc-b36c-40e3-9077-df480cb39835"
      unitRef="usd">1150935</cpix:DeferredTaxLiabilityOperatingLeaseRightOfUseAssets>
    <cpix:DeferredTaxLiabilityOperatingLeaseRightOfUseAssets
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzE2LTQtMS0xLTM4NjY1_fa212276-7b07-42ad-a8be-ec43beacb26e"
      unitRef="usd">0</cpix:DeferredTaxLiabilityOperatingLeaseRightOfUseAssets>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzEzLTItMS0xLTM0Mzg0_84a54e01-5faf-4ae5-889e-3fced0979441"
      unitRef="usd">0</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzEzLTQtMS0xLTM0Mzg0_de906b01-c3ab-45b9-834c-8f643c2b51c1"
      unitRef="usd">62253</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <cpix:NetDeferredTaxAssetsGross
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzE0LTItMS0xLTM0Mzg0_6cfd394e-fc6e-4e66-b643-a5b26ba917d6"
      unitRef="usd">21557784</cpix:NetDeferredTaxAssetsGross>
    <cpix:NetDeferredTaxAssetsGross
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzE0LTQtMS0xLTM0Mzg0_6e456ccb-0948-4f59-8f18-04a579a0970a"
      unitRef="usd">19761922</cpix:NetDeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzE1LTItMS0xLTM0Mzg0_2fc804d5-200f-456c-a4b1-b262979402e2"
      unitRef="usd">21557784</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzE1LTQtMS0xLTM0Mzg0_9a29dbd7-bb03-47dc-9b66-29cd6d5e18fd"
      unitRef="usd">19761922</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzE2LTItMS0xLTM0Mzg0_8d26a4a3-73f9-468b-8738-090cade54c8b"
      unitRef="usd">0</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToyODdkNTNiZDNmM2M0OTU2YWIzMDk2ODQ2ZDMxZTNkNC90YWJsZXJhbmdlOjI4N2Q1M2JkM2YzYzQ5NTZhYjMwOTY4NDZkMzFlM2Q0XzE2LTQtMS0xLTM0Mzg0_be022081-810c-452c-8971-0789bc189344"
      unitRef="usd">0</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90ZXh0cmVnaW9uOjU1MzQwODY1MzlhYTRjNjk4NzFiN2FlNzdiZTdhODJlXzE2Mjg_5c2c5b37-3857-4eb9-a0c2-135564926a27">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the amount and year of expiration of the Company's federal and state net operating loss carryforwards as of December&#160;31, 2022:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:90.544%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:61.377%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.861%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.599%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.861%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:16.602%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Years of expiration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;251,811&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;2024-2042&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;46,656,666&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;55,790,944&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Indefinite Period&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,405,835&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;433,203&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Total federal and state net operating loss carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;53,062,501&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;56,475,958&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SummaryOfOperatingLossCarryforwardsTextBlock>
    <us-gaap:OperatingLossCarryforwards
      contextRef="i0027eb6bc44b4567a5351c10399f22e7_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo0ZGY4ZGU2YzUyYzQ0YWJjYTcyYzA2MDc0Yzc4YWJiYy90YWJsZXJhbmdlOjRkZjhkZTZjNTJjNDRhYmNhNzJjMDYwNzRjNzhhYmJjXzItMi0xLTEtMzQzODQ_fe4585ae-5096-43bf-b41f-f578d7abd673"
      unitRef="usd">0</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="ifea0d070c6124183897a66bb2df920d4_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo0ZGY4ZGU2YzUyYzQ0YWJjYTcyYzA2MDc0Yzc4YWJiYy90YWJsZXJhbmdlOjRkZjhkZTZjNTJjNDRhYmNhNzJjMDYwNzRjNzhhYmJjXzItNC0xLTEtMzQzODQ_1458ccdd-be91-427e-91ae-e0ecd5710ab9"
      unitRef="usd">251811</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="i30e86908009643eebb68ac0e3a1ae95e_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo0ZGY4ZGU2YzUyYzQ0YWJjYTcyYzA2MDc0Yzc4YWJiYy90YWJsZXJhbmdlOjRkZjhkZTZjNTJjNDRhYmNhNzJjMDYwNzRjNzhhYmJjXzMtMi0xLTEtMzQzODQ_15413f0d-d491-441c-8118-10ca4a6efc6f"
      unitRef="usd">46656666</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="i99d9d087686e4acaa131dcf7f56b02b5_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo0ZGY4ZGU2YzUyYzQ0YWJjYTcyYzA2MDc0Yzc4YWJiYy90YWJsZXJhbmdlOjRkZjhkZTZjNTJjNDRhYmNhNzJjMDYwNzRjNzhhYmJjXzMtNC0xLTEtMzQzODQ_c60a75dd-8fe5-43c5-bef1-1139115770d9"
      unitRef="usd">55790944</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="i66d5038d3ea5413287c0c60e6f8d6e13_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo0ZGY4ZGU2YzUyYzQ0YWJjYTcyYzA2MDc0Yzc4YWJiYy90YWJsZXJhbmdlOjRkZjhkZTZjNTJjNDRhYmNhNzJjMDYwNzRjNzhhYmJjXzYtMi0xLTEtMzQzODQ_2c97a8d0-c254-4321-84c0-93c927f655f8"
      unitRef="usd">6405835</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="ic8ffa57a973c45d89dc9e53e23854361_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo0ZGY4ZGU2YzUyYzQ0YWJjYTcyYzA2MDc0Yzc4YWJiYy90YWJsZXJhbmdlOjRkZjhkZTZjNTJjNDRhYmNhNzJjMDYwNzRjNzhhYmJjXzYtNC0xLTEtMzQzODQ_a359d6f6-0e6d-4fe3-85dd-bc749d197656"
      unitRef="usd">433203</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="if08c5ee420b248ac902a128ef7d90e7a_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo0ZGY4ZGU2YzUyYzQ0YWJjYTcyYzA2MDc0Yzc4YWJiYy90YWJsZXJhbmdlOjRkZjhkZTZjNTJjNDRhYmNhNzJjMDYwNzRjNzhhYmJjXzgtMi0xLTEtMzQzODQ_079f3551-b67b-48a2-8b09-cc74bf057fd7"
      unitRef="usd">53062501</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="id4ecd0e4253e46d69b1840d128d714e3_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo0ZGY4ZGU2YzUyYzQ0YWJjYTcyYzA2MDc0Yzc4YWJiYy90YWJsZXJhbmdlOjRkZjhkZTZjNTJjNDRhYmNhNzJjMDYwNzRjNzhhYmJjXzgtNC0xLTEtMzQzODQ_68f0e995-0137-45c4-925f-9f50344a7445"
      unitRef="usd">56475958</us-gaap:OperatingLossCarryforwards>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90ZXh0cmVnaW9uOjU1MzQwODY1MzlhYTRjNjk4NzFiN2FlNzdiZTdhODJlXzE2MjU_39ccc5a6-13b8-47ee-b041-1a6c5e54972b">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Income tax (expense) benefit includes the following components for the years ended December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.038%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:64.595%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;State and other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;68,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,891&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;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;Total current income tax (expense) benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;68,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,891&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Deferred:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;61,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(61,678)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 25pt;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;Total deferred income tax (expense) benefit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;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;Total income tax (expense) benefit &lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;68,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;34,891&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzMtMi0xLTEtMzQzODQ_f9b6f768-53ba-43da-a367-288fdab10c39"
      unitRef="usd">0</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzMtNC0xLTEtMzQzODQ_540f6b6e-b08e-4784-a4fa-c3f7d300af6b"
      unitRef="usd">0</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzQtMi0xLTEtMzQzODQ_2f747be7-cf75-4fd6-bd61-39394ad6d4e1"
      unitRef="usd">-68850</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzQtNC0xLTEtMzQzODQ_fe4cc092-13f1-4fdd-8e37-6136836bdb49"
      unitRef="usd">-34891</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzUtMi0xLTEtMzQzODQ_d35bf5bb-494a-48c6-878e-0384ab61cf90"
      unitRef="usd">-68850</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzUtNC0xLTEtMzQzODQ_8b413d50-1f7d-483f-9bec-2a3688dc7fbf"
      unitRef="usd">-34891</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzgtMi0xLTEtMzQzODQ_578b6a4f-707a-43e1-81c2-8fe7a9a1e51a"
      unitRef="usd">0</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzgtNC0xLTEtMzQzODQ_beb8fe17-86bd-4492-aa18-31992d0ca85c"
      unitRef="usd">-61678</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzktMi0xLTEtMzQzODQ_aaac097c-b498-41ea-875e-cb35764cd309"
      unitRef="usd">0</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzktNC0xLTEtMzQzODQ_2f5b707f-c596-4624-a032-504eaad5f893"
      unitRef="usd">61678</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredOtherTaxExpenseBenefit
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzEwLTItMS0xLTM0Mzg0_ecab8cb7-4fea-4070-84f3-fc7781314bc8"
      unitRef="usd">0</us-gaap:DeferredOtherTaxExpenseBenefit>
    <us-gaap:DeferredOtherTaxExpenseBenefit
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzEwLTQtMS0xLTM0Mzg0_15a706d9-2ff8-4cf3-a75c-bea68cd27c47"
      unitRef="usd">0</us-gaap:DeferredOtherTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzExLTItMS0xLTM0Mzg0_625d78de-7e0c-4523-a58a-bee8f2f458fe"
      unitRef="usd">68850</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTo1N2Q3NGZhYjEzNzE0MjcwOWQwOGRjMmJkMGNjOWVlOS90YWJsZXJhbmdlOjU3ZDc0ZmFiMTM3MTQyNzA5ZDA4ZGMyYmQwY2M5ZWU5XzExLTQtMS0xLTM0Mzg0_9d9d1c12-f5c1-4191-ac69-912ff3bfb83a"
      unitRef="usd">34891</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90ZXh0cmVnaW9uOjU1MzQwODY1MzlhYTRjNjk4NzFiN2FlNzdiZTdhODJlXzE2MzA_5ddd9891-14fa-4280-a559-e551c83c66a5">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s effective income tax rate for 2022 and 2021 reconciles with the federal statutory tax rate as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.038%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:64.595%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Federal tax expense at statutory rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;State income tax expense (net of federal income tax benefit)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Permanent differences associated with general business credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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 valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(22)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(19)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Other permanent differences&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(4)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Net income tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&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="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzItMi0xLTEtMzQzODQ_e87aaacd-c52c-44e8-95bb-575391bf4822"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzItNC0xLTEtMzQzODQ_7e050f9c-b546-4453-b5e6-07a4d267dbd1"
      unitRef="number">0.21</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzMtMi0xLTEtMzQzODQ_fbb62d4a-df31-478e-a666-221b514e52e6"
      unitRef="number">0.02</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzMtNC0xLTEtMzQzODQ_779026eb-1ec4-4f52-a720-700cd57f73fe"
      unitRef="number">0.01</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzQtMi0xLTEtMzQzODQ_62327273-a20a-4d11-8014-bbbb3e1cb75c"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzQtNC0xLTEtMzQzODQ_0f453276-f510-402e-be2c-eaab95ed9611"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzUtMi0xLTEtMzQzODQ_17a5915e-1002-462a-8b73-e65824029baf"
      unitRef="number">-0.22</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzUtNC0xLTEtMzQzODQ_2d11d1c0-a649-4c34-96c8-4ef99848994f"
      unitRef="number">-0.19</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzYtMi0xLTEtMzQzODQ_55b6223b-dba6-4a39-b91b-f225d9341db4"
      unitRef="number">-0.02</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzYtNC0xLTEtMzQzODQ_548d2dd2-633a-4541-ae54-36ca71e7b80e"
      unitRef="number">-0.04</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzctMi0xLTEtMzQzODQ_98d1c9b3-e887-4ba8-8a30-b16affb7a514"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzctNC0xLTEtMzQzODQ_6a6ce6c3-8ccd-43e9-b4b9-97e07ee82cfa"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzgtMi0xLTEtMzQzODQ_1dd1b20e-5c71-4766-aba7-94ccd29b3388"
      unitRef="number">-0.01</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZToxOGZjMGJhNmM1ODA0NTZhOTZjMGQ5NDYwYmU3MDNhZS90YWJsZXJhbmdlOjE4ZmMwYmE2YzU4MDQ1NmE5NmMwZDk0NjBiZTcwM2FlXzgtNC0xLTEtMzQzODQ_d6ffa7ba-3605-49da-ae96-e16693b33560"
      unitRef="number">-0.01</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:SummaryOfTaxCreditCarryforwardsTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90ZXh0cmVnaW9uOjU1MzQwODY1MzlhYTRjNjk4NzFiN2FlNzdiZTdhODJlXzE2MjA_d419bf69-a52a-44cf-a38a-7a8df8bd340f">&lt;div style="margin-top:8pt;text-align:justify;text-indent:22.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, the Company has general business credit carryforwards of $1.5&#160;million.  These credit carryforwards will expire in years 2023 through 2042.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;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;  &lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:97.596%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:78.046%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.949%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.605%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Years of expiration&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&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="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;200,825&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2024-2042&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,319,161&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Total federal and state credit carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,519,986&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SummaryOfTaxCreditCarryforwardsTextBlock>
    <us-gaap:TaxCreditCarryforwardAmount
      contextRef="i81a18b4c882d437cb25a611496aa56a5_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90ZXh0cmVnaW9uOjU1MzQwODY1MzlhYTRjNjk4NzFiN2FlNzdiZTdhODJlXzc3NQ_bed46fdd-b2b5-409b-ae32-b47e9897a7c9"
      unitRef="usd">1500000</us-gaap:TaxCreditCarryforwardAmount>
    <us-gaap:TaxCreditCarryforwardAmount
      contextRef="i54dfc16f99534c19b2867a069f58d483_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTpiNmY3NGE3Zjk1NzU0MDRmYmRlOGJhZmIzYTVkYzhhMS90YWJsZXJhbmdlOmI2Zjc0YTdmOTU3NTQwNGZiZGU4YmFmYjNhNWRjOGExXzEtMi0xLTEtMzQzODQ_7c9080ec-a921-4ca1-8300-929e8c747488"
      unitRef="usd">200825</us-gaap:TaxCreditCarryforwardAmount>
    <us-gaap:TaxCreditCarryforwardAmount
      contextRef="i795293f449e54a6eb5e7aa63c13b396d_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTpiNmY3NGE3Zjk1NzU0MDRmYmRlOGJhZmIzYTVkYzhhMS90YWJsZXJhbmdlOmI2Zjc0YTdmOTU3NTQwNGZiZGU4YmFmYjNhNWRjOGExXzItMi0xLTEtMzQzODQ_ba520d0e-213e-4813-829c-b1cae7127b92"
      unitRef="usd">1319161</us-gaap:TaxCreditCarryforwardAmount>
    <us-gaap:TaxCreditCarryforwardAmount
      contextRef="i81a18b4c882d437cb25a611496aa56a5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjMvZnJhZzo1NTM0MDg2NTM5YWE0YzY5ODcxYjdhZTc3YmU3YTgyZS90YWJsZTpiNmY3NGE3Zjk1NzU0MDRmYmRlOGJhZmIzYTVkYzhhMS90YWJsZXJhbmdlOmI2Zjc0YTdmOTU3NTQwNGZiZGU4YmFmYjNhNWRjOGExXzUtMi0xLTEtMzQzODQ_a36adbba-67d4-4914-91b8-b2f6ff6e178b"
      unitRef="usd">1519986</us-gaap:TaxCreditCarryforwardAmount>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzUwMDc_5f3d14dd-908c-4a5a-bfca-18e5267b42c9">Stock-Based Compensation Plans&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has grants outstanding under two equity compensation plans. The 2007 Long-Term Incentive Compensation Plan (the "2007 Plan") and the 2007 Directors&#x2019; Incentive Plan (the "Directors&#x2019; Plan"), which were approved by shareholders, superseded the 1999 Stock Option Plan.  Both plans are available for future grants of equity compensation awards to employees, consultants and directors.  The 2007 Plan and the Directors&#x2019; Plan provide for the issuance of stock options, stock appreciation rights and restricted stock. Vesting is determined on a grant-by-grant basis in accordance with the terms of the plans and the related grant agreements. The Company has reserved 2.4 million shares of common stock for issuance under the 2007 Plan and 250,000 shares for issuance under the Directors&#x2019; Plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The exercise price of stock options is generally 100% of the fair market value of the underlying common stock on the grant date. The maximum contractual term of stock options is ten years from the date of grant, except for incentive stock options granted to 10% shareholders, which is five years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During 2011, the Company began issuing shares of restricted stock with no exercise price to employees and directors. Restricted stock issued to employees generally cliff-vests on the fourth anniversary of the date of grant. Restricted stock issued to directors vests on the one year anniversary of the date of grant.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock compensation expense is presented as a component of general and administrative expense in the consolidated statements of operations. Stock compensation expense consisted of the following for the years ended December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.038%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:64.595%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Share-based compensation - employees&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;449,467&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;730,412&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Share-based compensation - nonemployees&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,964)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Total share-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;447,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;741,867&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At December&#160;31, 2022, there was approximately $0.8 million of unrecognized compensation cost related to share-based payments, which is expected to be recognized over a weighted-average period of 1.81 years. This amount relates primarily to unrecognized compensation cost for employee restricted stock and stock options awards.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Stock Options&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company granted 178,950 and 186,900 incentive stock options during 2022 and 2021, respectively, which vest in four years.  There were no options exercised during 2022 and 2021.  As such, there was no intrinsic value of options or weighted-average fair value of options exercised for the periods.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Incentive Stock Options&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Incentive stock options activity was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:86.858%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:40.597%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.907%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.907%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.538%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.351%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;of option shares&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;average&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;exercise price&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted-average remaining contractual term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Nonvested, December&#160;31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Options shares granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;186,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.32&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Options shares vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Option shares forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(16,300)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Nonvested, December&#160;31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;170,600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Options shares granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;178,950&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.68&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Options shares vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Option shares forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(29,900)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.98&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Nonvested, December&#160;31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;319,650&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.00&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.15&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; The weighted-average grant-date fair value of options granted during  the years 2022 and 2021 was $1.29 and $1.10, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of stock options is calculated using the Black-Scholes (&#x201c;Black-Scholes-Merton&#x201d;, or &#x201c;BSM&#x201d;) option-pricing model on the date of grant. Since 2012, the Company had been issuing RSA&#x2019;s (Restricted Share Awards) where the grant date Fair Value (&#x201c;FV&#x201d;) equaled the closing share price.  The ISO&#x2019;s required a BSM valuation to approximate FV.  The following inputs were used in the creation of the valuation.   &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;padding-left:14.5pt"&gt;Volatility&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; - We estimate volatility in accordance with SAB No. 107, as amended by SAB No. 110. We have been publicly traded since August 2009, so we have sufficient years of trading history and volatility to appropriately evaluate this component of the BSM model.  As such, we are using our own historical volatility to value stock options.  We have noted no conditions that would indicate the historical volatility would not be an indicator of future volatility, as such we are using historical volatility over the same period as the expected term of the awards (7 years) back to 2015 and believe it to be sufficient. Calculated volatility for the grants issued in 2022 ranges from 44% to 45%.  Our average volatility over the life of stock being public is 42% and 45% over the last 6 months.  Based on the similar amounts, we believe our volatility estimate for the ISO&#x2019;s are appropriate.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;padding-left:14.5pt"&gt;Expected Term&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; - We estimate the expected life of employee share options based on the simplified method allowed by SAB No. 107, as amended by SAB No. 110. Under this approach, the expected term is presumed to be the average between the weighted-average vesting period and the contractual term.  The ISO&#x2019;s have a 10-year contractual term and the vesting period is 4 years.  This results in a calculated expected term of 7 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;padding-left:14.5pt"&gt;Risk Free rate&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; - The risk-free interest rate is based on the U.S. Treasury Note, on the date of grant with a term equal to the corresponding option&#x2019;s expected term. So, in this case, we are using the 7 year treasury note as of the date of grant, which ranges from 2.22% and 3.92% at the date of the grants.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%;padding-left:14.5pt"&gt;Dividend yield&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; - We have never declared or paid any cash dividends and there is currently no expected cash dividend payments as of the date of this grant. As such, dividend yield is zero. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Stock Awards&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Restricted stock activity was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:70.192%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:50.498%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.169%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.731%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.169%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.733%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;of shares&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;average&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;grant-date&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;fair value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Nonvested, December&#160;31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;779,415&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Shares granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Shares vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(192,684)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.29&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Shares forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(55,400)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Nonvested, December&#160;31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;568,181&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.17&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Shares granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;65,225&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Shares vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(171,655)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Shares forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(66,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.67&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Nonvested, December&#160;31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;395,751&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.29&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:16pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of restricted stock granted was based on the closing market price of the Company&#x2019;s common stock on the date of grant.  The restricted stock grants are included in the diluted weighted shares outstanding computation until they cliff-vest.  Once vested they are included in the basic weighted shares outstanding computation.&lt;/span&gt;&lt;/div&gt;</us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <cpix:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPlansAvailableForFutureGrants
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzI3NDg3NzkwNzQ1MDU_19b49766-cfd5-42ae-86a2-49fede6aff34"
      unitRef="plan">2</cpix:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfPlansAvailableForFutureGrants>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="ibe55a7e9ab974665911b58f2cf2ab1d1_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzczMg_ccc7ef22-aa9e-4e09-b75e-19970b00c42c"
      unitRef="shares">2400000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="i8296dfa01cf5426fa8af917b505e162d_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3Xzc5NQ_c9ac0f7f-785b-4926-a9d0-9cd49a7d4769"
      unitRef="shares">250000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <cpix:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisePriceAsPercentOfWeightedAverageGrantDateFairValue
      contextRef="i13b23c2311f046879e4fd6dafe94a991_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3Xzg5NA_7e109521-c430-4ea3-80c8-d7bd98c3c94b"
      unitRef="number">1</cpix:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisePriceAsPercentOfWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="i2d9c25b92eff4d35973caf424807a5d5_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzEwMjE_538b3f65-9919-426a-b322-4e9b22a1987d">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <cpix:ShareBasedCompensationArrangementByShareBasedPaymentAwardShareholderPercent
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzEwOTQ_0285d10c-7f69-431b-a443-ca02f22c0c03"
      unitRef="number">0.10</cpix:ShareBasedCompensationArrangementByShareBasedPaymentAwardShareholderPercent>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="i070ea86904974ad18860cbc73c3202cc_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzExMjA_d056c866-e660-4ccf-be83-9fb881783c0e">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i955de8aa181944039f7145e41a74c991_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzEzOTQ_22088b4b-19ef-48ed-9d04-ecf0b11b63a8">P1Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzUwMDQ_5402c37a-ecab-4b0a-99bd-2c95d503f18d">Stock compensation expense consisted of the following for the years ended December 31:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.038%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:64.595%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.770%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Share-based compensation - employees&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;449,467&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;730,412&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Share-based compensation - nonemployees&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(1,964)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Total share-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;447,503&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;741,867&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i09447f6af13b4f27a9f24d32a75cda9b_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTozNzE4OGRmZGJlNmQ0M2IwOWZhNDdmZjJiZDYzMTQ3OC90YWJsZXJhbmdlOjM3MTg4ZGZkYmU2ZDQzYjA5ZmE0N2ZmMmJkNjMxNDc4XzItMi0xLTEtMzQzODQ_3807f16d-8f8e-4b4c-a086-2463aae85d2a"
      unitRef="usd">449467</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i7684a832b0134542abe7faecbea0573e_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTozNzE4OGRmZGJlNmQ0M2IwOWZhNDdmZjJiZDYzMTQ3OC90YWJsZXJhbmdlOjM3MTg4ZGZkYmU2ZDQzYjA5ZmE0N2ZmMmJkNjMxNDc4XzItNC0xLTEtMzQzODQ_6656ee5b-669a-4709-b9d3-2044fc4cddde"
      unitRef="usd">730412</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i66c58bd8eaaf40cd8f6a0c93cdb60c2a_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTozNzE4OGRmZGJlNmQ0M2IwOWZhNDdmZjJiZDYzMTQ3OC90YWJsZXJhbmdlOjM3MTg4ZGZkYmU2ZDQzYjA5ZmE0N2ZmMmJkNjMxNDc4XzMtMi0xLTEtMzQzODQ_d5e14e21-c2c8-4a21-bd1e-f12e7ec8afdd"
      unitRef="usd">-1964</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i8d9566f966de4bd4968bb2d10e0af05b_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTozNzE4OGRmZGJlNmQ0M2IwOWZhNDdmZjJiZDYzMTQ3OC90YWJsZXJhbmdlOjM3MTg4ZGZkYmU2ZDQzYjA5ZmE0N2ZmMmJkNjMxNDc4XzMtNC0xLTEtMzQzODQ_37513f21-2edb-4741-a513-f1e303ad8630"
      unitRef="usd">11455</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i6e34c07ebd764d17a96ec1d0f497c811_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTozNzE4OGRmZGJlNmQ0M2IwOWZhNDdmZjJiZDYzMTQ3OC90YWJsZXJhbmdlOjM3MTg4ZGZkYmU2ZDQzYjA5ZmE0N2ZmMmJkNjMxNDc4XzQtMi0xLTEtMzQzODQ_02f5ae8e-4050-4261-ae38-677a0745976a"
      unitRef="usd">447503</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i89c60f8924f748d98ade2ba26f585e11_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTozNzE4OGRmZGJlNmQ0M2IwOWZhNDdmZjJiZDYzMTQ3OC90YWJsZXJhbmdlOjM3MTg4ZGZkYmU2ZDQzYjA5ZmE0N2ZmMmJkNjMxNDc4XzQtNC0xLTEtMzQzODQ_cf849878-73d6-4328-b819-e939a2192528"
      unitRef="usd">741867</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="i214555a81d9942d3a95516724918bd8d_I20181231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzE2OTc_b61b69a1-4ffd-46fd-a86e-5d56914455bf"
      unitRef="usd">800000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="i6c780a0c3e87440c8eb1928bb0ce5f86_D20180101-20181231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzE4MzY_d8ebcf59-38e3-41ba-9c36-16e454ac10ab">P1Y9M21D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzIwMDA_b55a804b-bfdf-4e9b-8cdd-5173abb96bc2"
      unitRef="shares">178950</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzEwOTk1MTE2MzI3OTM_81fd14ad-0e4a-4d74-9b25-eaae20a9beb1"
      unitRef="shares">186900</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i9b6757568b9e49e9966bfb7da5c81e59_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzIwNTI_901d1e37-f15f-4e06-9c9e-6a6621c4eb47">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzU0OTc1NTgyMjAwMw_3cd25138-9dc1-451f-a190-b2a5968c8040">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Incentive stock options activity was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:86.858%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:40.597%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.907%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.907%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.538%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:17.351%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;of option shares&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;average&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;exercise price&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted-average remaining contractual term&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Nonvested, December&#160;31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Options shares granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;186,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.32&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Options shares vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Option shares forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(16,300)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Nonvested, December&#160;31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;170,600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Options shares granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;178,950&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.68&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Options shares vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Option shares forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(29,900)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.98&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Nonvested, December&#160;31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;319,650&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.00&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.15&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Restricted stock activity was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:70.192%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:50.498%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.169%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.731%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.169%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.733%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Number&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;of shares&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;average&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;grant-date&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;fair value&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Nonvested, December&#160;31, 2020&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;779,415&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Shares granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;36,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3.21&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Shares vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(192,684)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.29&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Shares forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(55,400)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.39&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Nonvested, December&#160;31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;568,181&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5.17&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Shares granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;65,225&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Shares vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(171,655)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 13pt;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;Shares forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(66,000)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.67&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Nonvested, December&#160;31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;395,751&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4.29&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfSharebasedCompensationRestrictedStockAndRestrictedStockUnitsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i91bab75ee1804a1097fbe90085dc4f12_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzItMi0xLTEtNDI0Njk_32bde3d9-6bfa-41a1-9f62-972dd4ccd935"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i91bab75ee1804a1097fbe90085dc4f12_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzItNC0xLTEtNDI0Njk_7c62a89f-2742-49f2-a599-01b8f014794d"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="i96a4e765721c42ea917004337d0b3ad7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzMtMi0xLTEtNDI0Njk_7694572e-b761-4cb6-a683-b6fbd6792807"
      unitRef="shares">186900</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i96a4e765721c42ea917004337d0b3ad7_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzMtNC0xLTEtNDI0Njk_fef05afc-9953-4cd3-9f55-b622dc01d10e"
      unitRef="usdPerShare">3.32</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares
      contextRef="i96a4e765721c42ea917004337d0b3ad7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzQtMi0xLTEtNDI0Njk_b0ea1569-a3ee-4e3d-be92-9054a3764172"
      unitRef="shares">0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue
      contextRef="i96a4e765721c42ea917004337d0b3ad7_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzQtNC0xLTEtNDI0Njk_21b50c7b-343d-4e0a-9e81-172f57d78900"
      unitRef="usdPerShare">0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="i96a4e765721c42ea917004337d0b3ad7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzUtMi0xLTEtNDI0Njk_9108beed-d466-4c63-8b42-4285bccd1e1b"
      unitRef="shares">16300</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="i96a4e765721c42ea917004337d0b3ad7_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzUtNC0xLTEtNDI0Njk_20562ba6-9069-4993-87d4-ee025cdb217f"
      unitRef="usdPerShare">3.22</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i3b943054825b4193b3cf6fbcea5877d1_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzYtMi0xLTEtNDI0Njk_c262062c-45a5-4fb5-80d0-112cf5d55b8b"
      unitRef="shares">170600</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i3b943054825b4193b3cf6fbcea5877d1_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzYtNC0xLTEtNDI0Njk_56ea6b53-264d-4d1f-b035-f5c453eed2e9"
      unitRef="usdPerShare">3.33</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="ia1c248297d03494eb04a4bad485b30a6_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzctMi0xLTEtNDI0Njk_72e218a4-ef5c-41ac-8e11-7cbcdae9f6af"
      unitRef="shares">178950</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="ia1c248297d03494eb04a4bad485b30a6_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzctNC0xLTEtNDI0Njk_62202713-f0c1-45df-bc78-333df381657a"
      unitRef="usdPerShare">2.68</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares
      contextRef="ia1c248297d03494eb04a4bad485b30a6_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzgtMi0xLTEtNDI0Njk_c7bc2b65-e596-4894-ac34-c578f93a5903"
      unitRef="shares">0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedNumberOfShares>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue
      contextRef="ia1c248297d03494eb04a4bad485b30a6_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzgtNC0xLTEtNDI0Njk_019f3616-f5a1-4d8f-b344-a7b879f1e2b2"
      unitRef="usdPerShare">0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="ia1c248297d03494eb04a4bad485b30a6_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzktMi0xLTEtNDI0Njk_185f6aba-7d71-4d09-bddc-96cb397e1de6"
      unitRef="shares">29900</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="ia1c248297d03494eb04a4bad485b30a6_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzktNC0xLTEtNDI0Njk_2bfc046f-ff6f-4b7b-a764-9e9222d57c8b"
      unitRef="usdPerShare">2.98</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="idfea5a17cdad49b5b643bd1bf2db9833_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzEwLTItMS0xLTQyNDY5_6a8f4954-69f5-47c5-ab5d-2e5ee3ad0999"
      unitRef="shares">319650</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="idfea5a17cdad49b5b643bd1bf2db9833_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzEwLTQtMS0xLTQyNDY5_512d66bf-5ee6-458b-a616-0a9ecaa4007f"
      unitRef="usdPerShare">3.00</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="ia1c248297d03494eb04a4bad485b30a6_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTpmYjZjYmE3NWIyZTI0N2I5YTFiMDkxNDZkYTZmNTJmNi90YWJsZXJhbmdlOmZiNmNiYTc1YjJlMjQ3YjlhMWIwOTE0NmRhNmY1MmY2XzEwLTYtMS0xLTQyNjQ4_519fc1e8-7b3b-46ff-abf2-220468c855c5">P6Y1M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzEwOTk1MTE2MzU1OTk_6d57bfe7-46e2-4f05-959d-34b205ce47d3"
      unitRef="usdPerShare">1.29</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzEwOTk1MTE2MzU2MDc_2dc9ac7c-4da6-4e15-bc16-27f73c95d5a8"
      unitRef="usdPerShare">1.10</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i9b6757568b9e49e9966bfb7da5c81e59_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzMzNzQ_1bded0db-7b6f-4843-83f8-2b60195a2c61">P7Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i1b65c4b8b6aa447481044537155a6d9a_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzM0ODg_e96dac89-5190-4e79-bfe6-101788bba8c5"
      unitRef="number">0.44</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="if838a7aa53664232926aca1c69b23238_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzM0OTQ_cf0d0e1b-c821-4ace-8213-25fe16722ec9"
      unitRef="number">0.45</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate
      contextRef="i1b65c4b8b6aa447481044537155a6d9a_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzM1NjE_43c0059b-fe7b-4496-9012-2c76342bb917"
      unitRef="number">0.42</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate
      contextRef="if838a7aa53664232926aca1c69b23238_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzM1Njg_cdcee96a-8b90-4676-82b4-f492ec5411b8"
      unitRef="number">0.45</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsWeightedAverageVolatilityRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="i2d9c25b92eff4d35973caf424807a5d5_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzUwMTA_bc2e7751-59c6-4327-9acf-c31909ddb11f">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i9b6757568b9e49e9966bfb7da5c81e59_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzQwNTQ_a0658c65-0c0e-45e4-960e-8a2ce4bc1aa9">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i9b6757568b9e49e9966bfb7da5c81e59_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzQxMDU_efd4878d-3235-4fa7-8364-d9db23f10916">P7Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i1b65c4b8b6aa447481044537155a6d9a_D20220101-20221231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzQzNzM_2d5a7afd-c79d-4a4b-9910-6252fdde0424"
      unitRef="number">0.0222</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="if838a7aa53664232926aca1c69b23238_D20220101-20221231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzQzODA_69981b9c-5226-48f2-9df2-44a461130f29"
      unitRef="number">0.0392</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments
      contextRef="i9b6757568b9e49e9966bfb7da5c81e59_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90ZXh0cmVnaW9uOmQ0YTMyYjhhMDRhMzRlOWE5ZWU1NjY3ZjA1MDFmZWU3XzQ1OTI_16fa1d38-ddeb-4655-88e8-80559f63709f"
      unitRef="usd">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendPayments>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="ib2a4df839364457ca572567fd0e125dc_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzItMi0xLTEtMzQzODQ_16c79e75-ff71-4c59-958d-1ff54dff452e"
      unitRef="shares">779415</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="ib2a4df839364457ca572567fd0e125dc_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzItNC0xLTEtMzQzODQ_fa0ea2d4-0117-4abf-a227-d7d1f3ca5992"
      unitRef="usdPerShare">5.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i77bbb8c546584364b444f9dda7535ac1_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzMtMi0xLTEtMzQzODQ_3a50ed90-36e9-4e73-8d8f-57a0a0c5dd0d"
      unitRef="shares">36850</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i77bbb8c546584364b444f9dda7535ac1_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzMtNC0xLTEtMzQzODQ_2d0f863e-07fe-4171-9640-e8f09788247a"
      unitRef="usdPerShare">3.21</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i77bbb8c546584364b444f9dda7535ac1_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzQtMi0xLTEtMzQzODQ_e71fd994-fd7a-4f3d-9028-e20d7a07407c"
      unitRef="shares">192684</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="i77bbb8c546584364b444f9dda7535ac1_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzQtNC0xLTEtMzQzODQ_248c533a-f5df-4356-95e7-8fbf766c56d7"
      unitRef="usdPerShare">6.29</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="i77bbb8c546584364b444f9dda7535ac1_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzUtMi0xLTEtMzQzODQ_847c841c-12c5-414a-83bc-5c54fd325fb6"
      unitRef="shares">55400</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="i77bbb8c546584364b444f9dda7535ac1_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzUtNC0xLTEtMzQzODQ_9fc52311-ef4f-4aea-8a05-1b9ca904584d"
      unitRef="usdPerShare">5.39</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i430e1a4cd7514fe59de28ed3a49bbab5_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzYtMi0xLTEtMzQzODQ_89d54dbc-3c63-4366-9531-6c35722ea49c"
      unitRef="shares">568181</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i430e1a4cd7514fe59de28ed3a49bbab5_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzYtNC0xLTEtMzQzODQ_c3f2125a-f3f4-462a-85ff-8436a1c64459"
      unitRef="usdPerShare">5.17</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i2feebee0d9d3471aa9e1f9a777659632_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzctMi0xLTEtMzQzODQ_656a3f46-4773-4fea-8a36-12d0d95ecd03"
      unitRef="shares">65225</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i2feebee0d9d3471aa9e1f9a777659632_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzctNC0xLTEtMzQzODQ_6a9d4e2f-c72f-4a77-9e8b-b74df99e13c1"
      unitRef="usdPerShare">2.59</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i2feebee0d9d3471aa9e1f9a777659632_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzgtMi0xLTEtMzQzODQ_0e47d727-1d0f-4d14-af21-f507e6e21d4f"
      unitRef="shares">171655</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="i2feebee0d9d3471aa9e1f9a777659632_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzgtNC0xLTEtMzQzODQ_24f3c9b7-2b98-4eb9-8355-929dfdc9bcb6"
      unitRef="usdPerShare">6.42</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="i2feebee0d9d3471aa9e1f9a777659632_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzktMi0xLTEtMzQzODQ_0b7d7e9d-3708-4812-b382-f604fd3ac06d"
      unitRef="shares">66000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="i2feebee0d9d3471aa9e1f9a777659632_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzktNC0xLTEtMzQzODQ_eb82cc9f-05fe-468e-bf25-58002fe01cd3"
      unitRef="usdPerShare">4.67</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i872072012a784d598051e80fd8fb06ed_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzEwLTItMS0xLTM0Mzg0_dd9bcfdf-65f1-4e61-948b-860b20d0a7e1"
      unitRef="shares">395751</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i872072012a784d598051e80fd8fb06ed_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjYvZnJhZzpkNGEzMmI4YTA0YTM0ZTlhOWVlNTY2N2YwNTAxZmVlNy90YWJsZTo2YWVkZjUwN2QzM2U0ZjE0YTVhNzk5NzY1YjBkZTg2Ni90YWJsZXJhbmdlOjZhZWRmNTA3ZDMzZTRmMTRhNWE3OTk3NjViMGRlODY2XzEwLTQtMS0xLTM0Mzg0_6c36ac0c-b96f-4a2a-a5fb-7db619115f81"
      unitRef="usdPerShare">4.29</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjkvZnJhZzowYWRjMGYwNTZjNjM0MWY5OWM4NjFjMmRhNGQ4YTFkNi90ZXh0cmVnaW9uOjBhZGMwZjA1NmM2MzQxZjk5Yzg2MWMyZGE0ZDhhMWQ2XzEzMzA_056c4c8e-cbe4-41e9-aa5d-0ec901fead27">Employee Benefit Plans&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company sponsors an employee benefit plan that was established on January&#160;1, 2006, the Cumberland Pharmaceuticals 401(k) Plan (the&#160;"Plan"), under Section&#160;401(k) of the Internal Revenue Code of 1986, as amended, for the benefit of all employees over the age of 21, having been employed by the Company for at least six months. The Plan provides that participants may contribute up to the maximum amount of their compensation as set forth by the Internal Revenue Service each year. Employee contributions are invested in various investment funds based upon elections made by the employees. During 2022 and 2021, the Company contributed approximately $60,000 and 50,000, respectively, in each year to the Plan as an employer match of participant contributions.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In 2012 and 2013, the Company established non-qualified unfunded deferred compensation plans that allow participants to defer receipt of a portion of their compensation. The liability under the plans, reflected in other long term liabilities in the consolidated balance sheets, was $2.5 million and $3.4 million as of December&#160;31, 2022 and 2021, respectively.  The Company had assets consisting of company-owned life insurance contracts generally designated to pay benefits of the deferred compensation plans reflected in other assets in the consolidated balance sheet of $2.3 million and $3.2 million as of December&#160;31, 2022 and 2021, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <cpix:DefinedContributionPlanEligibilityMinimumEmployeeAge
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjkvZnJhZzowYWRjMGYwNTZjNjM0MWY5OWM4NjFjMmRhNGQ4YTFkNi90ZXh0cmVnaW9uOjBhZGMwZjA1NmM2MzQxZjk5Yzg2MWMyZGE0ZDhhMWQ2XzI5OA_cd0d861c-f0c8-46af-8a95-78a1e9de7b16">P21Y</cpix:DefinedContributionPlanEligibilityMinimumEmployeeAge>
    <cpix:DefinedContributionPlanEligibilityMinimumEmployeeServiceTimeForParticipationEligibility
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjkvZnJhZzowYWRjMGYwNTZjNjM0MWY5OWM4NjFjMmRhNGQ4YTFkNi90ZXh0cmVnaW9uOjBhZGMwZjA1NmM2MzQxZjk5Yzg2MWMyZGE0ZDhhMWQ2XzM1MQ_00f1fe9e-0744-4d09-aa3e-a7b9d922a3e7">P6M</cpix:DefinedContributionPlanEligibilityMinimumEmployeeServiceTimeForParticipationEligibility>
    <us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjkvZnJhZzowYWRjMGYwNTZjNjM0MWY5OWM4NjFjMmRhNGQ4YTFkNi90ZXh0cmVnaW9uOjBhZGMwZjA1NmM2MzQxZjk5Yzg2MWMyZGE0ZDhhMWQ2XzY3OA_81bc1796-3e1f-45e5-a084-fc818da45ff8"
      unitRef="usd">60000</us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount>
    <us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjkvZnJhZzowYWRjMGYwNTZjNjM0MWY5OWM4NjFjMmRhNGQ4YTFkNi90ZXh0cmVnaW9uOjBhZGMwZjA1NmM2MzQxZjk5Yzg2MWMyZGE0ZDhhMWQ2XzEwOTk1MTE2MjkxMzU_f30f0e84-d02f-4287-b5b4-422d2f5df564"
      unitRef="usd">50000</us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount>
    <us-gaap:DeferredCompensationLiabilityCurrentAndNoncurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjkvZnJhZzowYWRjMGYwNTZjNjM0MWY5OWM4NjFjMmRhNGQ4YTFkNi90ZXh0cmVnaW9uOjBhZGMwZjA1NmM2MzQxZjk5Yzg2MWMyZGE0ZDhhMWQ2XzEwMzg_6debcf29-56e7-4612-b6da-f5b6f9941d64"
      unitRef="usd">2500000</us-gaap:DeferredCompensationLiabilityCurrentAndNoncurrent>
    <us-gaap:DeferredCompensationLiabilityCurrentAndNoncurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjkvZnJhZzowYWRjMGYwNTZjNjM0MWY5OWM4NjFjMmRhNGQ4YTFkNi90ZXh0cmVnaW9uOjBhZGMwZjA1NmM2MzQxZjk5Yzg2MWMyZGE0ZDhhMWQ2XzEwNDU_aa37b187-38c8-46eb-a351-e4c9641d784e"
      unitRef="usd">3400000</us-gaap:DeferredCompensationLiabilityCurrentAndNoncurrent>
    <us-gaap:DeferredCompensationPlanAssets
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjkvZnJhZzowYWRjMGYwNTZjNjM0MWY5OWM4NjFjMmRhNGQ4YTFkNi90ZXh0cmVnaW9uOjBhZGMwZjA1NmM2MzQxZjk5Yzg2MWMyZGE0ZDhhMWQ2XzEyOTE_41f0ab71-cf80-4a47-ba5f-327bb44e834c"
      unitRef="usd">2300000</us-gaap:DeferredCompensationPlanAssets>
    <us-gaap:DeferredCompensationPlanAssets
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMjkvZnJhZzowYWRjMGYwNTZjNjM0MWY5OWM4NjFjMmRhNGQ4YTFkNi90ZXh0cmVnaW9uOjBhZGMwZjA1NmM2MzQxZjk5Yzg2MWMyZGE0ZDhhMWQ2XzEyOTg_6b676918-072d-4ec3-86a7-ad4d48efbe8a"
      unitRef="usd">3200000</us-gaap:DeferredCompensationPlanAssets>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzQxODE_4c545014-df85-4a2d-baea-d585741a500e">Leases&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On November 15, 2021, Cumberland entered into a lease, pursuant to which the Company leases approximately 16,903 rentable square feet of space at the new development Broadwest located in Nashville, Tennessee with 1600 West End Avenue Partners, LLC. The Leased Premise serves as the Company's new corporate headquarters. The initial term of the Lease is one hundred fifty-seven (157) months, with two consecutive options to renew for a period of five years each, with the commencement date of October 25, 2022.  This lease currently expires in November 2035.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company is responsible for paying rent to the Landlord under the Lease beginning three months after the Commencement Date. The Company pays a base rent of $33.06 per square foot of rentable space with a gradual rental rate increase of 2.5% for each year period thereafter of the prior year's base rental. In addition to the monthly base rent, the Company is responsible for its percentage share of the operating expenses of the Building. The Lease also provides for a tenant improvement allowance for the space.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In addition, the operating leases also include the lease of approximately 14,200 square feet of wet laboratory and office space in Nashville, Tennessee by CET, our majority-owned subsidiary, where it operates the CET Life Sciences Center.  The research lab space at CET, under an agreement amended in July 2012, is leased through April 2023, with an option to extend the lease through April 2028. The Company also subleases a portion of the space under these leases. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Rent expense is recognized over the expected term of the lease, including renewal option periods, if applicable, on a straight-line basis as a component of general and administrative expense. Rent expense and sublease income  as follows for the years ended December 31:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.153%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:64.900%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.800%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.233%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.800%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.567%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Rent expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,159,695&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,209,102&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Sublease income&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;529,411&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;699,889&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In March 2016, the FASB issued ASU 2016-02. ASU 2016-02&#x2019;s core principle is to increase transparency and comparability among organizations by recognizing lease assets and liabilities on the balance sheet and disclosing key information. The primary effect of adopting ASU 2016-02 to the Company was to record right-of-use assets and obligations for the leases currently classified as operating leases.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease liabilities were recorded as the present value of remaining lease payments not yet paid for the lease term discounted using the incremental borrowing rate associated with each lease. Operating lease right-of-use assets represent operating lease liabilities adjusted for lease incentives and initial direct costs. As the Company&#x2019;s leases do not contain implicit borrowing rates, the incremental borrowing rates were calculated based on information available at January 1, 2019 and October 25, 2022. Incremental borrowing rates reflect the Company&#x2019;s estimated interest rates for collateralized borrowings over similar lease terms. The weighted-average remaining lease term for the Broadwest lease is 12.7 years and for the CET lease is 0.1 years. The weighted-average incremental borrowing rate used to discount the present value of the remaining CPI lease payments is 9.28% and remaining CET lease payments is 7.42%.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Lease Position&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At December&#160;31, 2022 and 2021, the Company recorded the following on the Consolidated Balance Sheet:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;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; &lt;/span&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 style="width:56.271%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.883%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.130%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.883%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.133%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Right-of-Use Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;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;Operating lease right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,218,403&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,024,200&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:right"&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 style="width:56.271%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.883%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.130%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.883%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.133%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Lease Liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 7pt;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;Operating lease current liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;172,910&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;969,677&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 7pt;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;Operating lease non-current liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,586,301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;90,016&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,759,211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,059,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cumulative future minimum sublease income under non-cancelable operating subleases totals approximately $0.1 million and will be paid through the leases ending in April 2023. Future minimum lease payments under non-cancelable operating leases (with initial or remaining lease terms in excess of one year) are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:center"&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 style="width:77.585%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.883%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.132%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Maturity of Leases Liabilities at December&#160;31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 19pt;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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;607,061&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 19pt;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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;575,209&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;539,347&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 19pt;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;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;604,254&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;619,354&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 19pt;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;After 2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,482,220&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;Total minimum lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,427,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 19pt;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;Less: Interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,668,234)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;Present value of lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,759,211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
    <cpix:LesseeOperatingLeaseLeasedArea
      contextRef="i554be9ce2c1b41b4a99da09551040eaf_I20211115"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzM4OA_a9cf372e-5a79-4330-a7b0-db366286d8a9"
      unitRef="sqft">16903</cpix:LesseeOperatingLeaseLeasedArea>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="i554be9ce2c1b41b4a99da09551040eaf_I20211115"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzY2MA_fab39dee-eb1f-47b8-ad84-647961b51e78">P157M</us-gaap:LesseeOperatingLeaseTermOfContract>
    <cpix:LesseeOperatingLeaseNumberOfRenewalTerms
      contextRef="ic57bcfd058014d5d98c77360f419b471_I20211115"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzY3Nw_46c9e87d-b813-46cf-9a72-7a7a3f087c7d"
      unitRef="renewalterm">2</cpix:LesseeOperatingLeaseNumberOfRenewalTerms>
    <us-gaap:LesseeOperatingLeaseRenewalTerm
      contextRef="ic57bcfd058014d5d98c77360f419b471_I20211115"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzcyNQ_fda85d93-3645-4cf7-bf1e-f10ebba06f04">P5Y</us-gaap:LesseeOperatingLeaseRenewalTerm>
    <cpix:LesseeOperatingLeaseBaseRent
      contextRef="i554be9ce2c1b41b4a99da09551040eaf_I20211115"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzExMjY_c96b088c-be17-4feb-a414-6dd34e05f869"
      unitRef="usdPerSqft">33.06</cpix:LesseeOperatingLeaseBaseRent>
    <cpix:LesseeOperatingLeaseRentIncrease
      contextRef="ib2fa7c2f4e86401a88e3022cb2d1309b_I20211115"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzEyMDI_71f24c20-92e2-4e6d-8f2d-b60c70586017"
      unitRef="number">0.025</cpix:LesseeOperatingLeaseRentIncrease>
    <us-gaap:AreaOfRealEstateProperty
      contextRef="i5a4d2edd7a324a55a81eb502f58e0069_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzU0OTc1NTgxOTc1OA_67ff1778-c604-4dde-882a-1a9bd72fa5ea"
      unitRef="sqft">14200</us-gaap:AreaOfRealEstateProperty>
    <cpix:ScheduleofRentExpenseandSubleaseIncomeTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzQxNzg_81d34608-3a7d-4bc3-a73e-f52847dce121">Rent expense and sublease income  as follows for the years ended December 31:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:96.153%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:64.900%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.800%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.233%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.800%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:15.567%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Rent expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,159,695&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,209,102&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Sublease income&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;529,411&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;699,889&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;</cpix:ScheduleofRentExpenseandSubleaseIncomeTableTextBlock>
    <us-gaap:OperatingLeaseExpense
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZTpmODAzMTJjNDhkZWM0OTY3YWQzNjliZDkwZmM0MjNiNC90YWJsZXJhbmdlOmY4MDMxMmM0OGRlYzQ5NjdhZDM2OWJkOTBmYzQyM2I0XzItMi0xLTEtMzQzODQ_cccca164-537a-4310-9f49-84ff127fd1c1"
      unitRef="usd">1159695</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZTpmODAzMTJjNDhkZWM0OTY3YWQzNjliZDkwZmM0MjNiNC90YWJsZXJhbmdlOmY4MDMxMmM0OGRlYzQ5NjdhZDM2OWJkOTBmYzQyM2I0XzItNC0xLTEtMzQzODQ_58aae358-d391-4e73-bdb5-92b980442c23"
      unitRef="usd">1209102</us-gaap:OperatingLeaseExpense>
    <us-gaap:SubleaseIncome
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZTpmODAzMTJjNDhkZWM0OTY3YWQzNjliZDkwZmM0MjNiNC90YWJsZXJhbmdlOmY4MDMxMmM0OGRlYzQ5NjdhZDM2OWJkOTBmYzQyM2I0XzQtMi0xLTEtMzQzODQ_2e1bf8d3-092d-49cf-aa73-b7330fce4cb1"
      unitRef="usd">529411</us-gaap:SubleaseIncome>
    <us-gaap:SubleaseIncome
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZTpmODAzMTJjNDhkZWM0OTY3YWQzNjliZDkwZmM0MjNiNC90YWJsZXJhbmdlOmY4MDMxMmM0OGRlYzQ5NjdhZDM2OWJkOTBmYzQyM2I0XzQtNC0xLTEtMzQzODQ_2dbb5645-8658-49f9-a6dd-ab22fdd7e45f"
      unitRef="usd">699889</us-gaap:SubleaseIncome>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="i48b2fbaeed6a477c8536c9109ab9bde5_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzM1NzQ_4cc4d1f3-82d3-4832-8c6e-93901092508c">P12Y8M12D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="iffad826a3e6c41bd89cf0a3c062b03ad_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzEwOTk1MTE2MzI4MDQ_c724cf49-ab6a-4a9c-8391-0606e5eab0fe">P0Y1M6D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="i48b2fbaeed6a477c8536c9109ab9bde5_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzEwOTk1MTE2MzI3MzU_2c937a42-7eda-4a67-93da-9f7d990fdbda"
      unitRef="number">0.0928</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="iffad826a3e6c41bd89cf0a3c062b03ad_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzM3MDU_84d96882-eef0-4146-93fb-6a880baa4840"
      unitRef="number">0.0742</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <cpix:AssetsAndLiabilitiesLesseeTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzQxNzk_2a905982-0d8a-4913-bfa9-c03143f26de1">&lt;div style="margin-top:8pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At December&#160;31, 2022 and 2021, the Company recorded the following on the Consolidated Balance Sheet:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;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; &lt;/span&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 style="width:56.271%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.883%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.130%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.883%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.133%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Right-of-Use Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;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;Operating lease right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,218,403&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,024,200&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:right"&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 style="width:56.271%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.883%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.130%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.883%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.133%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Lease Liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 7pt;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;Operating lease current liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;172,910&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;969,677&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 7pt;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;Operating lease non-current liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,586,301&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;90,016&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Total&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,759,211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,059,693&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</cpix:AssetsAndLiabilitiesLesseeTableTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZTo1NWI3M2NiZjc1MTQ0YzZiYTQ4OWRjMzM4MmNiNmQxZS90YWJsZXJhbmdlOjU1YjczY2JmNzUxNDRjNmJhNDg5ZGMzMzgyY2I2ZDFlXzEtMi0xLTEtMzQzODQ_b419299c-6b3b-4f73-9ccb-8e7ee43bc2ac"
      unitRef="usd">5218403</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZTo1NWI3M2NiZjc1MTQ0YzZiYTQ4OWRjMzM4MmNiNmQxZS90YWJsZXJhbmdlOjU1YjczY2JmNzUxNDRjNmJhNDg5ZGMzMzgyY2I2ZDFlXzEtNC0xLTEtMzQzODQ_3f1fa727-82d8-4bd9-aefd-3a0bc71aa765"
      unitRef="usd">1024200</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZTo0YmE2ZmRiODA0YmU0Y2VhOGJiMjk2Y2RlNjg0Y2ZjNC90YWJsZXJhbmdlOjRiYTZmZGI4MDRiZTRjZWE4YmIyOTZjZGU2ODRjZmM0XzEtMi0xLTEtMzQzODQ_f25a2a7a-70df-430e-bb9a-f447d062162e"
      unitRef="usd">172910</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZTo0YmE2ZmRiODA0YmU0Y2VhOGJiMjk2Y2RlNjg0Y2ZjNC90YWJsZXJhbmdlOjRiYTZmZGI4MDRiZTRjZWE4YmIyOTZjZGU2ODRjZmM0XzEtNC0xLTEtMzQzODQ_41d82ab1-f3f3-4cf8-83f1-af6c07b14ace"
      unitRef="usd">969677</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZTo0YmE2ZmRiODA0YmU0Y2VhOGJiMjk2Y2RlNjg0Y2ZjNC90YWJsZXJhbmdlOjRiYTZmZGI4MDRiZTRjZWE4YmIyOTZjZGU2ODRjZmM0XzItMi0xLTEtMzQzODQ_438cf634-b7ab-438e-a5e4-493ee1daa023"
      unitRef="usd">4586301</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZTo0YmE2ZmRiODA0YmU0Y2VhOGJiMjk2Y2RlNjg0Y2ZjNC90YWJsZXJhbmdlOjRiYTZmZGI4MDRiZTRjZWE4YmIyOTZjZGU2ODRjZmM0XzItNC0xLTEtMzQzODQ_98ecc334-2da2-4b8c-8c97-30858d19bc85"
      unitRef="usd">90016</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <cpix:LeaseLiability
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZTo0YmE2ZmRiODA0YmU0Y2VhOGJiMjk2Y2RlNjg0Y2ZjNC90YWJsZXJhbmdlOjRiYTZmZGI4MDRiZTRjZWE4YmIyOTZjZGU2ODRjZmM0XzMtMi0xLTEtMzQzODQ_6980412e-a3e7-4625-a006-e9a1d4c2fa08"
      unitRef="usd">4759211</cpix:LeaseLiability>
    <cpix:LeaseLiability
      contextRef="ic0531c6598004c5d9158b8763683f643_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZTo0YmE2ZmRiODA0YmU0Y2VhOGJiMjk2Y2RlNjg0Y2ZjNC90YWJsZXJhbmdlOjRiYTZmZGI4MDRiZTRjZWE4YmIyOTZjZGU2ODRjZmM0XzMtNC0xLTEtMzQzODQ_125aa044-3921-463d-bfd6-ee02577388f9"
      unitRef="usd">1059693</cpix:LeaseLiability>
    <us-gaap:LessorOperatingLeasePaymentsToBeReceived
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzM5NTA_84324d9c-2ea5-4105-9d08-df0ea793e3c8"
      unitRef="usd">100000</us-gaap:LessorOperatingLeasePaymentsToBeReceived>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90ZXh0cmVnaW9uOjc2MTY3Yzg0MGJmYTQ3M2Y5YTc1ODVjZmZiZDE4YjM5XzQxODM_aa133497-dbe7-4611-9ea9-57cadb40f843">Future minimum lease payments under non-cancelable operating leases (with initial or remaining lease terms in excess of one year) are as follows:&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 style="width:77.585%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.883%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.132%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Maturity of Leases Liabilities at December&#160;31, 2022&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:100%"&gt;Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 19pt;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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;607,061&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 19pt;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;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;575,209&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;539,347&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 19pt;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;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;604,254&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;619,354&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 19pt;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;After 2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,482,220&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;Total minimum lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,427,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 19pt;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;Less: Interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,668,234)&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;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;Present value of lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&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 style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;4,759,211&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZToxMWM5NDhmYzJmMTg0YzAxOThjZmYyMzliYmQ1N2U5Ni90YWJsZXJhbmdlOjExYzk0OGZjMmYxODRjMDE5OGNmZjIzOWJiZDU3ZTk2XzEtMi0xLTEtMzc3OTg_0d2df6c6-4008-4291-bc10-8d233949ee01"
      unitRef="usd">607061</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZToxMWM5NDhmYzJmMTg0YzAxOThjZmYyMzliYmQ1N2U5Ni90YWJsZXJhbmdlOjExYzk0OGZjMmYxODRjMDE5OGNmZjIzOWJiZDU3ZTk2XzItMi0xLTEtMzc3OTg_1accef55-c7e2-4a0f-aaad-dff71a68ae81"
      unitRef="usd">575209</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZToxMWM5NDhmYzJmMTg0YzAxOThjZmYyMzliYmQ1N2U5Ni90YWJsZXJhbmdlOjExYzk0OGZjMmYxODRjMDE5OGNmZjIzOWJiZDU3ZTk2XzMtMi0xLTEtMzc3OTg_781ddb4a-5213-4f29-abf4-12a92d6c7ebf"
      unitRef="usd">539347</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZToxMWM5NDhmYzJmMTg0YzAxOThjZmYyMzliYmQ1N2U5Ni90YWJsZXJhbmdlOjExYzk0OGZjMmYxODRjMDE5OGNmZjIzOWJiZDU3ZTk2XzEtMi0xLTEtMzQzODQ_93b0b8c8-1e46-4e36-b348-5065fb31b339"
      unitRef="usd">604254</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZToxMWM5NDhmYzJmMTg0YzAxOThjZmYyMzliYmQ1N2U5Ni90YWJsZXJhbmdlOjExYzk0OGZjMmYxODRjMDE5OGNmZjIzOWJiZDU3ZTk2XzItMi0xLTEtMzQzODQ_0370f165-c13c-4943-b9fe-e17cc494d584"
      unitRef="usd">619354</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZToxMWM5NDhmYzJmMTg0YzAxOThjZmYyMzliYmQ1N2U5Ni90YWJsZXJhbmdlOjExYzk0OGZjMmYxODRjMDE5OGNmZjIzOWJiZDU3ZTk2XzMtMi0xLTEtMzQzODQ_12975783-56e6-47c8-a276-c741ba43f95d"
      unitRef="usd">5482220</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZToxMWM5NDhmYzJmMTg0YzAxOThjZmYyMzliYmQ1N2U5Ni90YWJsZXJhbmdlOjExYzk0OGZjMmYxODRjMDE5OGNmZjIzOWJiZDU3ZTk2XzctMi0xLTEtMzc3OTg_224cb619-67dd-4170-9451-d18eabe2ebcf"
      unitRef="usd">8427445</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZToxMWM5NDhmYzJmMTg0YzAxOThjZmYyMzliYmQ1N2U5Ni90YWJsZXJhbmdlOjExYzk0OGZjMmYxODRjMDE5OGNmZjIzOWJiZDU3ZTk2XzQtMi0xLTEtMzQzODQ_b770c709-6d99-44d9-b1bf-6d682b6ad15f"
      unitRef="usd">3668234</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="ie7de9e3a8f694f75963d43839bcbe61c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzIvZnJhZzo3NjE2N2M4NDBiZmE0NzNmOWE3NTg1Y2ZmYmQxOGIzOS90YWJsZToxMWM5NDhmYzJmMTg0YzAxOThjZmYyMzliYmQ1N2U5Ni90YWJsZXJhbmdlOjExYzk0OGZjMmYxODRjMDE5OGNmZjIzOWJiZDU3ZTk2XzUtMi0xLTEtMzQzODQ_d11c21e4-b2dc-4d0e-a75e-cf94db42b7a8"
      unitRef="usd">4759211</us-gaap:OperatingLeaseLiability>
    <us-gaap:ConcentrationRiskDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzUvZnJhZzpjZTRlNWE3OTFhYTA0MjJkOTQxMTk5ZmUyOTgzNzVkOC90ZXh0cmVnaW9uOmNlNGU1YTc5MWFhMDQyMmQ5NDExOTlmZTI5ODM3NWQ4XzkwMw_1b6a8ba4-076a-4b21-8c64-b6c9ce41c2c3">Market Concentrations&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s principal financial instruments subject to potential concentration of credit risk are accounts receivable, which are unsecured, and cash equivalents. The Company&#x2019;s cash equivalents consist primarily of money market funds. Certain bank deposits may be in excess of the insurance limits provided by the Federal Deposit Insurance Corporation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s primary customers are wholesale pharmaceutical distributors in the U.S. &#160;Total revenues by customer for each customer representing 10% or more of consolidated revenues are summarized below for the years ended December 31: &lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:61.538%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:49.941%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.362%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.816%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.362%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.819%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Customer 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Customer 2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Customer 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s accounts receivable, net of allowances, due from the customers representing 10% or more of consolidated revenue was 51.77% and 51.1% at December&#160;31, 2022 and 2021, respectively.&lt;/span&gt;&lt;/div&gt;</us-gaap:ConcentrationRiskDisclosureTextBlock>
    <us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzUvZnJhZzpjZTRlNWE3OTFhYTA0MjJkOTQxMTk5ZmUyOTgzNzVkOC90ZXh0cmVnaW9uOmNlNGU1YTc5MWFhMDQyMmQ5NDExOTlmZTI5ODM3NWQ4XzkwNQ_1a0d4329-8bf6-4993-80a2-6437feb22a60">Total revenues by customer for each customer representing 10% or more of consolidated revenues are summarized below for the years ended December 31: &lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:61.538%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:49.941%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.362%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.816%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.362%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:21.819%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Customer 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;29%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;27%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;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;Customer 2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Customer 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;22%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i8047e420d87647ca865218062adc1b3c_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzUvZnJhZzpjZTRlNWE3OTFhYTA0MjJkOTQxMTk5ZmUyOTgzNzVkOC90YWJsZTo1Y2RkZTM3YTY1ZmU0Mzk1YjM5MDcyMzJlNjM5ZmU0Zi90YWJsZXJhbmdlOjVjZGRlMzdhNjVmZTQzOTViMzkwNzIzMmU2MzlmZTRmXzItMi0xLTEtMzQzODQ_56799a9a-f6ea-47e2-8dbb-de5b372f6e36"
      unitRef="number">0.29</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="ibb1ed446076641e2b06e8f65764e9641_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzUvZnJhZzpjZTRlNWE3OTFhYTA0MjJkOTQxMTk5ZmUyOTgzNzVkOC90YWJsZTo1Y2RkZTM3YTY1ZmU0Mzk1YjM5MDcyMzJlNjM5ZmU0Zi90YWJsZXJhbmdlOjVjZGRlMzdhNjVmZTQzOTViMzkwNzIzMmU2MzlmZTRmXzItNC0xLTEtMzQzODQ_fcdbae52-8d55-42da-94ea-416dd3c6fdc9"
      unitRef="number">0.27</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="ie513e297486b4dc29fca145454075e01_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzUvZnJhZzpjZTRlNWE3OTFhYTA0MjJkOTQxMTk5ZmUyOTgzNzVkOC90YWJsZTo1Y2RkZTM3YTY1ZmU0Mzk1YjM5MDcyMzJlNjM5ZmU0Zi90YWJsZXJhbmdlOjVjZGRlMzdhNjVmZTQzOTViMzkwNzIzMmU2MzlmZTRmXzMtMi0xLTEtMzQzODQ_f9ab68d6-b706-49fa-a047-e1e0fd745d10"
      unitRef="number">0.24</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i0510690b6b854b9d8843a2b97df3ce27_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzUvZnJhZzpjZTRlNWE3OTFhYTA0MjJkOTQxMTk5ZmUyOTgzNzVkOC90YWJsZTo1Y2RkZTM3YTY1ZmU0Mzk1YjM5MDcyMzJlNjM5ZmU0Zi90YWJsZXJhbmdlOjVjZGRlMzdhNjVmZTQzOTViMzkwNzIzMmU2MzlmZTRmXzMtNC0xLTEtMzQzODQ_e5a7bbdc-966a-4449-9e0f-e67fc3216134"
      unitRef="number">0.24</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i40f47c6c3c2345c982dcd1e267fd6145_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzUvZnJhZzpjZTRlNWE3OTFhYTA0MjJkOTQxMTk5ZmUyOTgzNzVkOC90YWJsZTo1Y2RkZTM3YTY1ZmU0Mzk1YjM5MDcyMzJlNjM5ZmU0Zi90YWJsZXJhbmdlOjVjZGRlMzdhNjVmZTQzOTViMzkwNzIzMmU2MzlmZTRmXzQtMi0xLTEtMzQzODQ_fdf9df26-d7e1-44e0-901c-43a674b47326"
      unitRef="number">0.22</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="iaff5c56f78a34c10b47d66d78992346f_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzUvZnJhZzpjZTRlNWE3OTFhYTA0MjJkOTQxMTk5ZmUyOTgzNzVkOC90YWJsZTo1Y2RkZTM3YTY1ZmU0Mzk1YjM5MDcyMzJlNjM5ZmU0Zi90YWJsZXJhbmdlOjVjZGRlMzdhNjVmZTQzOTViMzkwNzIzMmU2MzlmZTRmXzQtNC0xLTEtMzQzODQ_dca2fe03-2d42-466a-8a75-1266008c9008"
      unitRef="number">0.20</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i42772db945f14e0d885bd05151e93291_D20220101-20221231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzUvZnJhZzpjZTRlNWE3OTFhYTA0MjJkOTQxMTk5ZmUyOTgzNzVkOC90ZXh0cmVnaW9uOmNlNGU1YTc5MWFhMDQyMmQ5NDExOTlmZTI5ODM3NWQ4Xzg2Nw_e9e71fc8-a87d-4a77-8fb8-e9575dbfc8b4"
      unitRef="number">0.5177</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i3990e4402eb64fb980a6bad3eb7430b8_D20210101-20211231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzUvZnJhZzpjZTRlNWE3OTFhYTA0MjJkOTQxMTk5ZmUyOTgzNzVkOC90ZXh0cmVnaW9uOmNlNGU1YTc5MWFhMDQyMmQ5NDExOTlmZTI5ODM3NWQ4Xzg3NA_fed94039-1c32-4d8e-b57c-c0a45fc2d537"
      unitRef="number">0.511</us-gaap:ConcentrationRiskPercentage1>
    <cpix:ManufacturingAndSupplyAgreementsTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzgvZnJhZzo2ZTc0NWVmNDBmNjg0MGIzYWZjM2Y4MzVkMWViODI3YS90ZXh0cmVnaW9uOjZlNzQ1ZWY0MGY2ODQwYjNhZmMzZjgzNWQxZWI4MjdhXzYzOQ_6a938ac8-27d5-4526-a487-cd260b140731">Manufacturing and Supply AgreementsThe Company utilizes one or two primary suppliers to manufacture each of its products and product candidates. Although there are a limited number of manufacturers of pharmaceutical products, the Company believes it could utilize other suppliers to manufacture its prescription products on comparable terms.  A change in suppliers, problems with its third-party manufacturing operations or related production capacity, or contract disputes with suppliers could cause a delay in manufacturing or shipment of finished goods and possible loss of sales, which could adversely affect operating results.</cpix:ManufacturingAndSupplyAgreementsTextBlock>
    <cpix:ManufacturingAgreementsNumberOfPrimarySuppliersForEachProduct
      contextRef="ic40eb7705a474e4fa7d98cfa3a5cb554_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzgvZnJhZzo2ZTc0NWVmNDBmNjg0MGIzYWZjM2Y4MzVkMWViODI3YS90ZXh0cmVnaW9uOjZlNzQ1ZWY0MGY2ODQwYjNhZmMzZjgzNWQxZWI4MjdhXzY3_6e9543d6-0c91-4bcb-9c54-75ab58e21d66"
      unitRef="supplier">1</cpix:ManufacturingAgreementsNumberOfPrimarySuppliersForEachProduct>
    <cpix:ManufacturingAgreementsNumberOfPrimarySuppliersForEachProduct
      contextRef="ie088610f3d64485c98806a39268009ee_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yMzgvZnJhZzo2ZTc0NWVmNDBmNjg0MGIzYWZjM2Y4MzVkMWViODI3YS90ZXh0cmVnaW9uOjZlNzQ1ZWY0MGY2ODQwYjNhZmMzZjgzNWQxZWI4MjdhXzcz_40fbbfbb-d4ef-49ab-826f-d5fce106328e"
      unitRef="supplier">2</cpix:ManufacturingAgreementsNumberOfPrimarySuppliersForEachProduct>
    <cpix:EmploymentAgreementsTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDEvZnJhZzpjZjY2ZGYxMTAzMmE0ZjRjOGU3ZTE2MjNmZTEzMDkxZC90ZXh0cmVnaW9uOmNmNjZkZjExMDMyYTRmNGM4ZTdlMTYyM2ZlMTMwOTFkXzMzOA_9ad5acc0-6a12-4d89-8826-eb06ca897783">Employment AgreementsThe Company has entered into employment agreements with all its full-time employees. Each employment agreement provides for a salary for services performed, a potential annual bonus and, if applicable, a grant of restricted common shares pursuant to a restricted stock and incentive stock option agreement.</cpix:EmploymentAgreementsTextBlock>
    <us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDQvZnJhZzo0Y2E1ODA3YWFkMGM0NDFjYTg5ZDNkNzQ1MDk4NTkzNi90ZXh0cmVnaW9uOjRjYTU4MDdhYWQwYzQ0MWNhODlkM2Q3NDUwOTg1OTM2XzMwNjg_9c1fe4f2-ccf9-48aa-ac84-48d617ef892b">Discontinued Operations&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; In 2016, Cumberland entered into an agreement with Clinigen Group Plc ("Clinigen") for the rights and responsibilities associated with the commercialization of Ethyol in the United States.  In 2017, the Company entered into another agreement with Clinigen for the rights and responsibilities associated with the commercialization of Totect in the United States.  Ethyol and Totect are collectively referred to herein as the "Products."&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Early in 2019, Cumberland announced a strategic review of the Company's brands, capabilities, and international partners. This review followed an accelerated business development initiative, which resulted in a series of transactions. Because of that progress, Cumberland felt that it was prudent to take a fresh look at our product portfolio, partners, and organization to ensure proper focus and capabilities.  &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During May 2019, Cumberland entered into the Dissolution Agreement with Clinigen in which the Company returned the exclusive rights to commercialize Ethyol and Totect (&#x201c;the Products&#x201d;)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;in the United States to Clinigen. This Dissolution Agreement originally targeted a transition from the Company's arrangements with Clinigen effective September 30, 2019, but was then amended to change the transition date to December 31, 2019. Under the terms of the Dissolution Agreement, Cumberland was no longer responsible for the distribution, marketing and promotion of either the Products or any competing products after December 31, 2019.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;  &lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In exchange for the return of these product license rights and the non-compete provisions of the Dissolution Agreement, Cumberland received $5&#160;million in financial consideration paid in quarterly installments over the two-years following the transition date.  Cumberland recorded the last four quarterly installments totaling $2.0 million during the year ended December 31, 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The exit from the Ethyol and Totect products meets the accounting criteria to be reported as discontinued operations.  As a result, January 1, 2020, was the first day of discontinued operations for the Products.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Products provided revenue, incurred direct expenses and resulted in discontinued operations income during the periods presented.  The following amounts have been separated from continuing operations, as discontinued operations, for all periods presented. The direct expenses separated for discontinued operations do not reflect the direct selling and marketing costs attributable to the individuals at Cumberland responsible for promotion of the Products.&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;  Subsequent to the transaction date, th&lt;/span&gt;&lt;span style="background-color:#ffffff;color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ose sales and marketing individuals who supported the Products shifted their efforts from the Products and continue to support other Cumberland brands.&lt;/span&gt;&lt;/div&gt;</us-gaap:DisposalGroupsIncludingDiscontinuedOperationsDisclosureTextBlock>
    <us-gaap:ConsiderationReceivedForBeneficialInterestObtainedForTransferringFinancialAsset
      contextRef="i478ad941e6444190835fbd70e6a0fda2_D20200101-20201231"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDQvZnJhZzo0Y2E1ODA3YWFkMGM0NDFjYTg5ZDNkNzQ1MDk4NTkzNi90ZXh0cmVnaW9uOjRjYTU4MDdhYWQwYzQ0MWNhODlkM2Q3NDUwOTg1OTM2XzE2NTU_770a83a3-5840-42f1-b712-afe1514f6b1d"
      unitRef="usd">5000000</us-gaap:ConsiderationReceivedForBeneficialInterestObtainedForTransferringFinancialAsset>
    <cpix:FinancialConsiderationPaymentPeriod
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDQvZnJhZzo0Y2E1ODA3YWFkMGM0NDFjYTg5ZDNkNzQ1MDk4NTkzNi90ZXh0cmVnaW9uOjRjYTU4MDdhYWQwYzQ0MWNhODlkM2Q3NDUwOTg1OTM2XzMwNjk_2507053a-3619-419f-ab52-567c0ef141d9">P2Y</cpix:FinancialConsiderationPaymentPeriod>
    <cpix:FinancialConsiderationNumberOfInstallments
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDQvZnJhZzo0Y2E1ODA3YWFkMGM0NDFjYTg5ZDNkNzQ1MDk4NTkzNi90ZXh0cmVnaW9uOjRjYTU4MDdhYWQwYzQ0MWNhODlkM2Q3NDUwOTg1OTM2XzE3OTU_21dd2166-c52d-4cb6-83dc-7d652f1fbb78"
      unitRef="installment">4</cpix:FinancialConsiderationNumberOfInstallments>
    <us-gaap:ConsiderationReceivedForBeneficialInterestObtainedForTransferringFinancialAsset
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDQvZnJhZzo0Y2E1ODA3YWFkMGM0NDFjYTg5ZDNkNzQ1MDk4NTkzNi90ZXh0cmVnaW9uOjRjYTU4MDdhYWQwYzQ0MWNhODlkM2Q3NDUwOTg1OTM2XzE4MzA_6b92f55d-bc78-46de-9746-c2b29eccb538"
      unitRef="usd">2000000</us-gaap:ConsiderationReceivedForBeneficialInterestObtainedForTransferringFinancialAsset>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDcvZnJhZzphZjE5MGE0NDcwMDI0YzFkOTIxMDU0MTVmNTM2ZDY2NS90ZXh0cmVnaW9uOmFmMTkwYTQ0NzAwMjRjMWQ5MjEwNTQxNWY1MzZkNjY1XzQxNzE_6b7ce4e0-1a7b-4d3d-8370-f7ee59d0bdc9">Commitments and Contingencies&lt;div style="margin-top:8pt;padding-left: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:120%"&gt;Commitments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with its licensing agreements for Caldolor,  the Company is required to pay royalties based on net sales over the life of the product. Royalty expense is recognized as a component of selling and marketing expense in the period that revenue is recognized. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the acquisition of Vibativ, the Company is required to pay royalties based on net sales of the product.  At the purchase date, Cumberland recorded the fair value of this liability and will continue to evaluate the liability each period and the royalty expense is recognized as a component of selling and marketing expense in the period that the change in fair value is recognized. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the acquisition of Sancuso, the Company is required to pay up to $3.5&#160;million in milestones and tiered royalties ranging from 10% to 5% on U.S. net product sales for ten years.    &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Legal Matters&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cumberland has a number of patents issued through the United States Patent and Trademark Office (the &#x201c;USPTO&#x201d;) including U.S. Patent number 8,148,356 (the &#x201c;356 Acetadote Patent&#x201d;) which is assigned to the Company. The claims of the 356 Acetadote Patent encompass the new Acetadote formulation and include composition of matter claims. Following its issuance, the 356 Acetadote Patent was listed in the FDA Orange Book. The 356 Acetadote Patent is scheduled to expire in May 2026, which time period includes a 270-day patent term adjustment granted by the USPTO.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Since 2012, Cumberland has continued to vigorously defend and protect its Acetadote product and related intellectual property rights including the use of all its legal options. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Melinta Litigation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On February 2, 2022, the Company filed an action for breach of contract against Melinta Therapeutics, LLC and Targanta Therapeutics Corporation (collectively, the &#x201c;Defendants&#x201d;) in the United States District Court for the Southern District of New York (Case No. 1:22-cv-00915-VM).  The Company and the Defendants are parties to an agreement (the &#x201c;Agreement&#x201d;), pursuant to which the Defendants have a license to develop and commercialize products under certain Company patents, in exchange for the Defendants paying the Company certain milestone payments and royalties on net sales of the licensed products.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Specifically, the Agreement requires the Defendants to, among other things, make a $500,000 payment to the Company within 30 days following the first filing of an sNDA in relation to the Product (as defined the Agreement) and a $500,000 payment to the Company following the approval of the first sNDA in relation to the Product.  &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;After Defendants disclosed the domiciles of its limited partners to the Company, as required by the Court, on October 24, 2022, the action for breach of contract was refiled in the Supreme Court of the State of New York, County of New York (Index No. 654234/2022) on November 7, 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The complaint alleges that, despite the Defendants filing an NDA and sNDA for the Product and receiving FDA approval for both applications, the Defendants failed to make the required total of $1&#160;million in milestone payments to the Company.  The Company is seeking damages in the amount of no less than $1&#160;million, pre- and post-judgment interest under N.Y. C.P.L.R. &#xa7; 5001, costs, and such further relief as the court deems just and proper.&lt;/span&gt;&lt;/div&gt;The Company is a party to various other legal proceedings in the ordinary course of its business. In the opinion of management, the liability associated with these matters, will not have a material adverse effect on the Company's consolidated financial position, results of operations or cash flows.</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsMaximum
      contextRef="i03b6a63983b64d8bbf3a1a5e92a62c3b_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDcvZnJhZzphZjE5MGE0NDcwMDI0YzFkOTIxMDU0MTVmNTM2ZDY2NS90ZXh0cmVnaW9uOmFmMTkwYTQ0NzAwMjRjMWQ5MjEwNTQxNWY1MzZkNjY1XzExODY_fdcd9580-3421-48a5-aef2-0f308030a8c9"
      unitRef="usd">3500000</cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsMaximum>
    <cpix:CollaborativeArrangementRightsAndObligationsTieredRoyaltyPercent
      contextRef="i1e7165d6a14540d69539b738e13cdf8d_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDcvZnJhZzphZjE5MGE0NDcwMDI0YzFkOTIxMDU0MTVmNTM2ZDY2NS90ZXh0cmVnaW9uOmFmMTkwYTQ0NzAwMjRjMWQ5MjEwNTQxNWY1MzZkNjY1XzEyMzc_123d4cfa-23c4-42f5-b9fa-53fbb4f04755"
      unitRef="number">0.10</cpix:CollaborativeArrangementRightsAndObligationsTieredRoyaltyPercent>
    <cpix:CollaborativeArrangementRightsAndObligationsTieredRoyaltyPercent
      contextRef="i284259e69f3e4e4e84c466d1e02a1e56_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDcvZnJhZzphZjE5MGE0NDcwMDI0YzFkOTIxMDU0MTVmNTM2ZDY2NS90ZXh0cmVnaW9uOmFmMTkwYTQ0NzAwMjRjMWQ5MjEwNTQxNWY1MzZkNjY1XzEyNDM_71d28cd6-487d-4901-ba8c-f626a551ca4f"
      unitRef="number">0.05</cpix:CollaborativeArrangementRightsAndObligationsTieredRoyaltyPercent>
    <cpix:CollaborativeArrangementRightsAndObligationsTerm
      contextRef="i03b6a63983b64d8bbf3a1a5e92a62c3b_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDcvZnJhZzphZjE5MGE0NDcwMDI0YzFkOTIxMDU0MTVmNTM2ZDY2NS90ZXh0cmVnaW9uOmFmMTkwYTQ0NzAwMjRjMWQ5MjEwNTQxNWY1MzZkNjY1XzEyNzY_676ee604-107d-45d4-aa49-9a00fda47c66">P10Y</cpix:CollaborativeArrangementRightsAndObligationsTerm>
    <cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsReceivable
      contextRef="ia952b89d554e4c89bf3b5882567c2d5f_I20220202"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDcvZnJhZzphZjE5MGE0NDcwMDI0YzFkOTIxMDU0MTVmNTM2ZDY2NS90ZXh0cmVnaW9uOmFmMTkwYTQ0NzAwMjRjMWQ5MjEwNTQxNWY1MzZkNjY1XzU0OTc1NTgyNTQ5Ng_6fa76533-8b7a-4620-aaf8-0f6b10ce1030"
      unitRef="usd">500000</cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsReceivable>
    <cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsReceivable
      contextRef="i49eca3268edc4ad8b4e63d2e71cfa018_I20220202"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDcvZnJhZzphZjE5MGE0NDcwMDI0YzFkOTIxMDU0MTVmNTM2ZDY2NS90ZXh0cmVnaW9uOmFmMTkwYTQ0NzAwMjRjMWQ5MjEwNTQxNWY1MzZkNjY1XzU0OTc1NTgyNTUwNg_3e68ec46-7c71-4be6-a00e-062a1b1a83fe"
      unitRef="usd">500000</cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsReceivable>
    <cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsReceivable
      contextRef="i1f878acd95a045fd934d5052dde987c6_I20221107"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDcvZnJhZzphZjE5MGE0NDcwMDI0YzFkOTIxMDU0MTVmNTM2ZDY2NS90ZXh0cmVnaW9uOmFmMTkwYTQ0NzAwMjRjMWQ5MjEwNTQxNWY1MzZkNjY1XzU0OTc1NTgyNTUxNg_2e95ce16-03fa-4a46-bacf-50f0d4ff5e57"
      unitRef="usd">1000000</cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsReceivable>
    <us-gaap:GainContingencyUnrecordedAmount
      contextRef="i1f878acd95a045fd934d5052dde987c6_I20221107"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNDcvZnJhZzphZjE5MGE0NDcwMDI0YzFkOTIxMDU0MTVmNTM2ZDY2NS90ZXh0cmVnaW9uOmFmMTkwYTQ0NzAwMjRjMWQ5MjEwNTQxNWY1MzZkNjY1XzU0OTc1NTgyNTUyOA_0a15fc9e-ae05-4dfa-a31a-a61db3ced3a3"
      unitRef="usd">1000000</us-gaap:GainContingencyUnrecordedAmount>
    <us-gaap:QuarterlyFinancialInformationTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90ZXh0cmVnaW9uOjY5N2YxZTM0MTU4MDRhMGI4M2RjOWNlNzE3OWUwZDk1XzM1Mg_ea9eb396-06b9-40ee-9aee-27cac8a1bb14">Quarterly Financial Information (Unaudited)&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth the unaudited operating results for each fiscal quarter of 2022 and 2021:&lt;/span&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 style="width:35.598%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.761%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.598%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.761%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.598%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.761%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.598%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.761%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.598%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.761%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.605%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;First&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Quarter&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Second&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Quarter&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Third&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Quarter&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Fourth&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Quarter&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;2022:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Net revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,175,045&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,299,152&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,413,072&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,123,680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;42,010,949&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Operating income (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,291,999)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,846,538)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(288,588)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,277,804)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(5,704,929)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Net income (loss) from continuing operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,402,433)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,364,666)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(423,226)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,459,714)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(5,650,039)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Net income (loss) attributable to common shareholders&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,385,253)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,335,620)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(408,639)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,440,729)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(5,570,241)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Earnings (loss) per share attributable to common shareholders &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;text-indent:-18pt;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;Continuing operations - basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.03)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.17)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.38)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;text-indent:-13.5pt;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;Discontinued operations - basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.03)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.17)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.38)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Continuing operations - diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.03)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.17)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.38)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Discontinued operations - diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.03)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.17)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.38)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;2021:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Net revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,537,159&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,055,483&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,072,540&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,319,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;35,985,043&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Operating income (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(324,300)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,435,729)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,563,395)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,353,996)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(7,677,420)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Net income (loss) from continuing operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(350,749)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;724,684&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,583,480)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,387,576)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(5,597,121)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Net income (loss) from discontinued operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;495,410&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;498,807&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;496,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;503,318&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,994,322&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Net income (loss) attributable to common shareholders&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;166,828&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,228,560&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,055,278)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(3,847,697)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(3,507,587)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Earnings (loss) per share attributable to common shareholders &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;text-indent:-18pt;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;Continuing operations - basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.02)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.10)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.29)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.37)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;text-indent:-13.5pt;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;Discontinued operations - basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;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;Basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.07)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.26)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.24)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Continuing operations - diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.02)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.10)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.29)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.37)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Discontinued operations - diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;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;Diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.07)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.26)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.24)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:40.5pt;text-align:justify;text-indent:-18pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:40.5pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"&gt;(1)&#160;&#160;&#160;&#160;Due to the nature of interim earnings per share calculations, the sum of the quarterly earnings (loss) per share amounts may not equal the reported earnings (loss) per share for the full year.&lt;/span&gt;&lt;/div&gt;</us-gaap:QuarterlyFinancialInformationTextBlock>
    <us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90ZXh0cmVnaW9uOjY5N2YxZTM0MTU4MDRhMGI4M2RjOWNlNzE3OWUwZDk1XzM1Mw_0e9c8ad5-a80b-4a83-b1a5-4bbe44840dee">&lt;div style="margin-top:8pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth the unaudited operating results for each fiscal quarter of 2022 and 2021:&lt;/span&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 style="width:35.598%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.761%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.598%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.761%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.598%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.761%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.598%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.761%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.598%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.761%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.605%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;First&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Quarter&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Second&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Quarter&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Third&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Quarter&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Fourth&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Quarter&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;2022:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Net revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,175,045&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,299,152&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;11,413,072&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,123,680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;42,010,949&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Operating income (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,291,999)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,846,538)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(288,588)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,277,804)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(5,704,929)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Net income (loss) from continuing operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,402,433)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,364,666)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(423,226)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,459,714)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(5,650,039)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Net income (loss) attributable to common shareholders&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,385,253)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,335,620)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(408,639)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(2,440,729)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(5,570,241)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Earnings (loss) per share attributable to common shareholders &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;text-indent:-18pt;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;Continuing operations - basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.03)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.17)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.38)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;text-indent:-13.5pt;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;Discontinued operations - basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.03)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.17)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.38)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Continuing operations - diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.03)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.17)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.38)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Discontinued operations - diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;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;Diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.09)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.03)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.17)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.38)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;2021:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Net revenues&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;10,537,159&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;9,055,483&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,072,540&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;8,319,861&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;35,985,043&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Operating income (loss)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(324,300)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,435,729)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,563,395)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,353,996)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(7,677,420)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Net income (loss) from continuing operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(350,749)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;724,684&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,583,480)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(4,387,576)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(5,597,121)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Net income (loss) from discontinued operations&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;495,410&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;498,807&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;496,787&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;503,318&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,994,322&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Net income (loss) attributable to common shareholders&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;166,828&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;1,228,560&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(1,055,278)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(3,847,697)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(3,507,587)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Earnings (loss) per share attributable to common shareholders &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;text-indent:-18pt;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;Continuing operations - basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.02)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.10)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.29)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.37)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;text-indent:-13.5pt;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;Discontinued operations - basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;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;Basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.07)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.26)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.24)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:5pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;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;Continuing operations - diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.02)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.10)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.29)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.37)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Discontinued operations - diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.03&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;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;Diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;0.08&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.07)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.26)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;(0.24)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:40.5pt;text-align:justify;text-indent:-18pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;padding-left:40.5pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"&gt;(1)&#160;&#160;&#160;&#160;Due to the nature of interim earnings per share calculations, the sum of the quarterly earnings (loss) per share amounts may not equal the reported earnings (loss) per share for the full year.&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfQuarterlyFinancialInformationTableTextBlock>
    <us-gaap:Revenues
      contextRef="i64c3421e0d2e4d6594a1310b2092eef6_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzMtMi0xLTEtMzQzODQ_f10820e2-9fc8-4aa8-b32f-5abacd8566ae"
      unitRef="usd">11175045</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="i7f2fe16a8bbd495ea60a640bf9253bff_D20220401-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzMtNC0xLTEtMzQzODQ_48f5f969-850f-43e7-9964-7233dad4e84a"
      unitRef="usd">10299152</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="i51cefa1dd6e647bc8991a306ad56646f_D20220701-20220930"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzMtNi0xLTEtMzQzODQ_0e373468-1153-4375-803c-4b075ce60281"
      unitRef="usd">11413072</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="i9732767fb209402a8b3130d4446cf0dd_D20221001-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzMtOC0xLTEtMzQzODQ_5bf55f90-e999-4c38-a93a-a675323b0646"
      unitRef="usd">9123680</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzMtMTAtMS0xLTM0Mzg0_083b2ec7-92dd-43d1-9814-402b50f9b147"
      unitRef="usd">42010949</us-gaap:Revenues>
    <us-gaap:OperatingIncomeLoss
      contextRef="i64c3421e0d2e4d6594a1310b2092eef6_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzQtMi0xLTEtMzQzODQ_b5a5797b-9c6e-429a-a226-01d7152cc966"
      unitRef="usd">-1291999</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i7f2fe16a8bbd495ea60a640bf9253bff_D20220401-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzQtNC0xLTEtMzQzODQ_5bc820b6-7504-4c05-9a08-3450d16dde40"
      unitRef="usd">-1846538</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i51cefa1dd6e647bc8991a306ad56646f_D20220701-20220930"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzQtNi0xLTEtMzQzODQ_ee62f3ae-dfea-47fe-8bf5-eb079cb53a5f"
      unitRef="usd">-288588</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i9732767fb209402a8b3130d4446cf0dd_D20221001-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzQtOC0xLTEtMzQzODQ_70e616cb-3cf6-4964-a3b9-d50a13d13fbe"
      unitRef="usd">-2277804</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzQtMTAtMS0xLTM0Mzg0_e41cea7a-a760-42e4-9bd5-8004ec49635c"
      unitRef="usd">-5704929</us-gaap:OperatingIncomeLoss>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i64c3421e0d2e4d6594a1310b2092eef6_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzUtMi0xLTEtMzQzODQ_b116281f-b493-4a19-a62a-126ee72c5279"
      unitRef="usd">-1402433</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i7f2fe16a8bbd495ea60a640bf9253bff_D20220401-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzUtNC0xLTEtMzQzODQ_7fa9b083-1d78-442a-b3c0-a8a3e8eb056c"
      unitRef="usd">-1364666</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i51cefa1dd6e647bc8991a306ad56646f_D20220701-20220930"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzUtNi0xLTEtMzQzODQ_f71458f3-188a-45c4-a7aa-2c9f166576a8"
      unitRef="usd">-423226</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i9732767fb209402a8b3130d4446cf0dd_D20221001-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzUtOC0xLTEtMzQzODQ_1ad765cc-1a5f-453c-bd79-4424086e4d9c"
      unitRef="usd">-2459714</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzUtMTAtMS0xLTM0Mzg0_20dc1b98-e13b-4956-910a-8cac75847869"
      unitRef="usd">-5650039</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLoss
      contextRef="i64c3421e0d2e4d6594a1310b2092eef6_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzctMi0xLTEtMzQzODQ_f6233868-e602-4a91-86c0-eeac0970470a"
      unitRef="usd">-1385253</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i7f2fe16a8bbd495ea60a640bf9253bff_D20220401-20220630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzctNC0xLTEtMzQzODQ_33f787f4-4757-4c14-b191-74d0f146bf26"
      unitRef="usd">-1335620</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i51cefa1dd6e647bc8991a306ad56646f_D20220701-20220930"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzctNi0xLTEtMzQzODQ_be462f91-af07-425a-a78b-e9cf46b2df20"
      unitRef="usd">-408639</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i9732767fb209402a8b3130d4446cf0dd_D20221001-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzctOC0xLTEtMzQzODQ_a9aa53d2-aa9d-4940-845e-c06f8827f84d"
      unitRef="usd">-2440729</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzctMTAtMS0xLTM0Mzg0_b71b95d0-fc57-46cc-96ed-9dc5a90f1e94"
      unitRef="usd">-5570241</us-gaap:NetIncomeLoss>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="i64c3421e0d2e4d6594a1310b2092eef6_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzktMi0xLTEtMzQzODQ_e4067b22-c74a-4da6-9bbd-b225015fa549"
      unitRef="usdPerShare">-0.09</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="i7f2fe16a8bbd495ea60a640bf9253bff_D20220401-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzktNC0xLTEtMzQzODQ_a9cc1609-5d14-4c3a-ba0c-e8cd9bcb573d"
      unitRef="usdPerShare">-0.09</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="i51cefa1dd6e647bc8991a306ad56646f_D20220701-20220930"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzktNi0xLTEtMzQzODQ_432de364-39de-4efe-8aba-814b10c034e2"
      unitRef="usdPerShare">-0.03</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="i9732767fb209402a8b3130d4446cf0dd_D20221001-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzktOC0xLTEtMzQzODQ_5dcd3ad6-728f-4a01-b454-2b5084a862bd"
      unitRef="usdPerShare">-0.17</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzktMTAtMS0xLTM0Mzg0_5dfd8dc3-bb54-42cd-9751-95a51828e7ec"
      unitRef="usdPerShare">-0.38</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
      contextRef="i64c3421e0d2e4d6594a1310b2092eef6_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzEwLTItMS0xLTM0Mzg0_b0d6fba1-2ff6-4722-ba82-7313c1f1f7b0"
      unitRef="usdPerShare">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
      contextRef="i7f2fe16a8bbd495ea60a640bf9253bff_D20220401-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzEwLTQtMS0xLTM0Mzg0_03819879-7c72-461d-abc7-0ca781b95161"
      unitRef="usdPerShare">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
      contextRef="i51cefa1dd6e647bc8991a306ad56646f_D20220701-20220930"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzEwLTYtMS0xLTM0Mzg0_fa56d630-94cb-4998-bb53-611517f22617"
      unitRef="usdPerShare">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
      contextRef="i9732767fb209402a8b3130d4446cf0dd_D20221001-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzEwLTgtMS0xLTM0Mzg0_22cda5b4-7bfd-4ce4-9537-316b9ece3aef"
      unitRef="usdPerShare">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzEwLTEwLTEtMS0zNDM4NA_c9675e1c-13c0-4255-9e49-8d9372c2fb47"
      unitRef="usdPerShare">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
    <us-gaap:EarningsPerShareBasic
      contextRef="i64c3421e0d2e4d6594a1310b2092eef6_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzExLTItMS0xLTM0Mzg0_506cdbbb-f774-49e0-acff-61c7f22044d8"
      unitRef="usdPerShare">-0.09</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i7f2fe16a8bbd495ea60a640bf9253bff_D20220401-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzExLTQtMS0xLTM0Mzg0_e4dda22e-6419-4d85-9f0a-5d3a56f45db0"
      unitRef="usdPerShare">-0.09</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i51cefa1dd6e647bc8991a306ad56646f_D20220701-20220930"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzExLTYtMS0xLTM0Mzg0_f526160c-32a4-4c3e-9e80-1b876bf33c96"
      unitRef="usdPerShare">-0.03</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i9732767fb209402a8b3130d4446cf0dd_D20221001-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzExLTgtMS0xLTM0Mzg0_a7035de0-c160-408d-bce6-a5b9e3b7fb35"
      unitRef="usdPerShare">-0.17</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzExLTEwLTEtMS0zNDM4NA_b21f773c-e5c4-4d5c-a6b1-4cfbf0571d3e"
      unitRef="usdPerShare">-0.38</us-gaap:EarningsPerShareBasic>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="i64c3421e0d2e4d6594a1310b2092eef6_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzEzLTItMS0xLTM0Mzg0_48f65c86-5ab6-4b69-a643-7f9a7d07f998"
      unitRef="usdPerShare">-0.09</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="i7f2fe16a8bbd495ea60a640bf9253bff_D20220401-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzEzLTQtMS0xLTM0Mzg0_e7096625-c098-4637-92f6-2e8d093e3eef"
      unitRef="usdPerShare">-0.09</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="i51cefa1dd6e647bc8991a306ad56646f_D20220701-20220930"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzEzLTYtMS0xLTM0Mzg0_5889da6c-753d-4027-8950-983d36fd74d7"
      unitRef="usdPerShare">-0.03</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="i9732767fb209402a8b3130d4446cf0dd_D20221001-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzEzLTgtMS0xLTM0Mzg0_0a92ab88-cbeb-4db6-a505-5b0ce9fcda1d"
      unitRef="usdPerShare">-0.17</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzEzLTEwLTEtMS0zNDM4NA_f98f24ef-68a9-41db-8734-b16427bb6272"
      unitRef="usdPerShare">-0.38</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
      contextRef="i64c3421e0d2e4d6594a1310b2092eef6_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE0LTItMS0xLTM0Mzg0_7316830b-4f5e-459d-920a-a423d7c7e4f3"
      unitRef="usdPerShare">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
      contextRef="i7f2fe16a8bbd495ea60a640bf9253bff_D20220401-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE0LTQtMS0xLTM0Mzg0_6043ff49-5817-461b-8b8b-1212189476ea"
      unitRef="usdPerShare">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
      contextRef="i51cefa1dd6e647bc8991a306ad56646f_D20220701-20220930"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE0LTYtMS0xLTM0Mzg0_c8741812-7226-4919-8ad8-acd4a547bba4"
      unitRef="usdPerShare">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
      contextRef="i9732767fb209402a8b3130d4446cf0dd_D20221001-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE0LTgtMS0xLTM0Mzg0_94361242-036c-420a-a9e7-f94f03db8b94"
      unitRef="usdPerShare">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE0LTEwLTEtMS0zNDM4NA_29770a5b-b254-4fe9-898b-b44b8398c306"
      unitRef="usdPerShare">0</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i64c3421e0d2e4d6594a1310b2092eef6_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE1LTItMS0xLTM0Mzg0_7efd16fa-f737-4879-99e3-56ed363c7b9a"
      unitRef="usdPerShare">-0.09</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i7f2fe16a8bbd495ea60a640bf9253bff_D20220401-20220630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE1LTQtMS0xLTM0Mzg0_c05afa12-ba25-41b7-a9e1-e5697cd2d685"
      unitRef="usdPerShare">-0.09</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i51cefa1dd6e647bc8991a306ad56646f_D20220701-20220930"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE1LTYtMS0xLTM0Mzg0_2dbe362d-aaa9-4127-af58-7216c86f6fac"
      unitRef="usdPerShare">-0.03</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i9732767fb209402a8b3130d4446cf0dd_D20221001-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE1LTgtMS0xLTM0Mzg0_933b3a07-1134-4a6f-9886-8e869dfc7a12"
      unitRef="usdPerShare">-0.17</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE1LTEwLTEtMS0zNDM4NA_f116d8e6-315f-4667-b0d4-a0a6308b5710"
      unitRef="usdPerShare">-0.38</us-gaap:EarningsPerShareDiluted>
    <us-gaap:Revenues
      contextRef="i8bb6789dd2f843cb82a83fd5fc2577ba_D20210101-20210331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE4LTItMS0xLTM0Mzg0_ef041951-ca12-4002-ba50-931cd6a8bff1"
      unitRef="usd">10537159</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="ib02166c7239b48fa890b13833088a8d6_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE4LTQtMS0xLTM0Mzg0_96000932-0374-4546-9549-dc9cc593b299"
      unitRef="usd">9055483</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="ica6fdfd9286c4d57995a6511ca191736_D20210701-20210930"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE4LTYtMS0xLTM0Mzg0_2a78de12-a49f-4b14-8662-259feb4a9ad1"
      unitRef="usd">8072540</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="i4fc808860d28405daa2fbb90f800fb9c_D20211001-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE4LTgtMS0xLTM0Mzg0_cb276c4b-c0b3-4d04-af90-e587bd63ea67"
      unitRef="usd">8319861</us-gaap:Revenues>
    <us-gaap:Revenues
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE4LTEwLTEtMS0zNDM4NA_df5f82c3-b080-439b-946e-1bb7024fe9a1"
      unitRef="usd">35985043</us-gaap:Revenues>
    <us-gaap:OperatingIncomeLoss
      contextRef="i8bb6789dd2f843cb82a83fd5fc2577ba_D20210101-20210331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE5LTItMS0xLTM0Mzg0_fee854b5-9c2f-4b1c-b681-1c3a202f9d70"
      unitRef="usd">-324300</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="ib02166c7239b48fa890b13833088a8d6_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE5LTQtMS0xLTM0Mzg0_c08a8225-232a-4fcd-87c3-3084770edf04"
      unitRef="usd">-1435729</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="ica6fdfd9286c4d57995a6511ca191736_D20210701-20210930"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE5LTYtMS0xLTM0Mzg0_acdb2854-fc06-45d6-82ab-85c2012cea12"
      unitRef="usd">-1563395</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i4fc808860d28405daa2fbb90f800fb9c_D20211001-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE5LTgtMS0xLTM0Mzg0_737ff08b-cba5-4819-8648-386479e3df1e"
      unitRef="usd">-4353996</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzE5LTEwLTEtMS0zNDM4NA_19cb8c05-8e85-4338-a787-7dd54be09730"
      unitRef="usd">-7677420</us-gaap:OperatingIncomeLoss>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i8bb6789dd2f843cb82a83fd5fc2577ba_D20210101-20210331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIwLTItMS0xLTM0Mzg0_66127bc2-b539-4d74-9390-056a563a7eb2"
      unitRef="usd">-350749</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ib02166c7239b48fa890b13833088a8d6_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIwLTQtMS0xLTM0Mzg0_72752da9-76c4-44a9-b299-ea014a4de724"
      unitRef="usd">724684</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ica6fdfd9286c4d57995a6511ca191736_D20210701-20210930"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIwLTYtMS0xLTM0Mzg0_83d16a29-7627-4ce6-b0e2-d17ca38809bf"
      unitRef="usd">-1583480</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i4fc808860d28405daa2fbb90f800fb9c_D20211001-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIwLTgtMS0xLTM0Mzg0_a6267f36-45fb-404a-9313-15fd40361916"
      unitRef="usd">-4387576</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIwLTEwLTEtMS0zNDM4NA_d1ad7396-3385-4387-8896-2a9c50aef556"
      unitRef="usd">-5597121</us-gaap:IncomeLossFromContinuingOperationsIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax
      contextRef="i8bb6789dd2f843cb82a83fd5fc2577ba_D20210101-20210331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIxLTItMS0xLTM0Mzg0_269a04e1-772e-4528-96a1-4260a4c641ff"
      unitRef="usd">495410</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax
      contextRef="ib02166c7239b48fa890b13833088a8d6_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIxLTQtMS0xLTM0Mzg0_4174497e-1732-4f40-97c6-b3be909443e3"
      unitRef="usd">498807</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax
      contextRef="ica6fdfd9286c4d57995a6511ca191736_D20210701-20210930"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIxLTYtMS0xLTM0Mzg0_2f3e8c88-dcc5-4211-8f07-0b3447ec4a27"
      unitRef="usd">496787</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax
      contextRef="i4fc808860d28405daa2fbb90f800fb9c_D20211001-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIxLTgtMS0xLTM0Mzg0_a9fb0ef2-ac01-47fc-843f-3b2d27086ab9"
      unitRef="usd">503318</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIxLTEwLTEtMS0zNDM4NA_4ee2f49a-4763-48b8-9c02-6ee1a7a0f0be"
      unitRef="usd">1994322</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTax>
    <us-gaap:NetIncomeLoss
      contextRef="i8bb6789dd2f843cb82a83fd5fc2577ba_D20210101-20210331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIyLTItMS0xLTM0Mzg0_f4cccda9-08e5-4603-be57-606cba65057d"
      unitRef="usd">166828</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ib02166c7239b48fa890b13833088a8d6_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIyLTQtMS0xLTM0Mzg0_fd8e2473-5863-4a9d-b688-0dbe10eea184"
      unitRef="usd">1228560</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ica6fdfd9286c4d57995a6511ca191736_D20210701-20210930"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIyLTYtMS0xLTM0Mzg0_8fde1823-1547-4d74-b93f-30e767f1c684"
      unitRef="usd">-1055278</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i4fc808860d28405daa2fbb90f800fb9c_D20211001-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIyLTgtMS0xLTM0Mzg0_63b7601a-06eb-4631-996c-edf111a4cb65"
      unitRef="usd">-3847697</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzIyLTEwLTEtMS0zNDM4NA_6677bf5c-5aff-4625-9f21-8628b660d8b7"
      unitRef="usd">-3507587</us-gaap:NetIncomeLoss>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="i8bb6789dd2f843cb82a83fd5fc2577ba_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI0LTItMS0xLTM0Mzg0_fa48d15d-ef36-4614-91a8-ec96ff8da22f"
      unitRef="usdPerShare">-0.02</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="ib02166c7239b48fa890b13833088a8d6_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI0LTQtMS0xLTM0Mzg0_2eaae03a-9377-40f1-ad02-8f0f4d952476"
      unitRef="usdPerShare">0.05</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="ica6fdfd9286c4d57995a6511ca191736_D20210701-20210930"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI0LTYtMS0xLTM0Mzg0_deabef38-79c1-4d29-89ea-bc71e8ae0471"
      unitRef="usdPerShare">-0.10</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="i4fc808860d28405daa2fbb90f800fb9c_D20211001-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI0LTgtMS0xLTM0Mzg0_aca43702-48bd-43b6-a171-42a4645280b5"
      unitRef="usdPerShare">-0.29</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI0LTEwLTEtMS0zNDM4NA_56d79589-7900-4f34-9991-3f1567c7745e"
      unitRef="usdPerShare">-0.37</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
      contextRef="i8bb6789dd2f843cb82a83fd5fc2577ba_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI1LTItMS0xLTM0Mzg0_df1c704d-a720-4774-81ae-2fee3bc2a370"
      unitRef="usdPerShare">0.03</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
      contextRef="ib02166c7239b48fa890b13833088a8d6_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI1LTQtMS0xLTM0Mzg0_592988dc-7fe0-405b-8729-532b1809f3d7"
      unitRef="usdPerShare">0.03</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
      contextRef="ica6fdfd9286c4d57995a6511ca191736_D20210701-20210930"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI1LTYtMS0xLTM0Mzg0_997c5c6a-5701-4ca1-a2ff-20294d41270a"
      unitRef="usdPerShare">0.03</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
      contextRef="i4fc808860d28405daa2fbb90f800fb9c_D20211001-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI1LTgtMS0xLTM0Mzg0_5fc6248a-d392-40c3-a214-e26bb3a866b5"
      unitRef="usdPerShare">0.03</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI1LTEwLTEtMS0zNDM4NA_ef38ecf9-8129-4bbd-bdfc-7aa2a6defb96"
      unitRef="usdPerShare">0.13</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerBasicShare>
    <us-gaap:EarningsPerShareBasic
      contextRef="i8bb6789dd2f843cb82a83fd5fc2577ba_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI2LTItMS0xLTM0Mzg0_61db8188-7054-4c70-8dde-5a1f43f4900a"
      unitRef="usdPerShare">0.01</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="ib02166c7239b48fa890b13833088a8d6_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI2LTQtMS0xLTM0Mzg0_970eee0e-406c-4eb6-805b-a2dfe48db11f"
      unitRef="usdPerShare">0.08</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="ica6fdfd9286c4d57995a6511ca191736_D20210701-20210930"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI2LTYtMS0xLTM0Mzg0_80ca3f37-bfc6-48cc-bf35-a141eda8b8b0"
      unitRef="usdPerShare">-0.07</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i4fc808860d28405daa2fbb90f800fb9c_D20211001-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI2LTgtMS0xLTM0Mzg0_f2f0ee4c-686d-4b24-b729-d3a27bc3f9fb"
      unitRef="usdPerShare">-0.26</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI2LTEwLTEtMS0zNDM4NA_ca138677-f4d6-4a85-b1cb-e9fb7c5b699d"
      unitRef="usdPerShare">-0.24</us-gaap:EarningsPerShareBasic>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="i8bb6789dd2f843cb82a83fd5fc2577ba_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI4LTItMS0xLTM0Mzg0_1cce7548-20d7-42e7-9e3b-60ab7c734bdf"
      unitRef="usdPerShare">-0.02</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="ib02166c7239b48fa890b13833088a8d6_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI4LTQtMS0xLTM0Mzg0_f86c691b-c248-4b39-8499-852cb99f7d8d"
      unitRef="usdPerShare">0.05</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="ica6fdfd9286c4d57995a6511ca191736_D20210701-20210930"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI4LTYtMS0xLTM0Mzg0_4df581f8-589e-4aff-84da-ed1c659247d1"
      unitRef="usdPerShare">-0.10</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="i4fc808860d28405daa2fbb90f800fb9c_D20211001-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI4LTgtMS0xLTM0Mzg0_3fa2c47d-08b8-4c72-b3f3-c7cda026f16b"
      unitRef="usdPerShare">-0.29</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI4LTEwLTEtMS0zNDM4NA_207d2429-21f5-47f9-88bf-6a3cb4e87548"
      unitRef="usdPerShare">-0.37</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
      contextRef="i8bb6789dd2f843cb82a83fd5fc2577ba_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI5LTItMS0xLTM0Mzg0_54bcc6e4-9463-4230-a4d3-daa1618fe67c"
      unitRef="usdPerShare">0.03</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
      contextRef="ib02166c7239b48fa890b13833088a8d6_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI5LTQtMS0xLTM0Mzg0_01f6d502-e5b3-46ac-8e19-b771bf305f7e"
      unitRef="usdPerShare">0.03</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
      contextRef="ica6fdfd9286c4d57995a6511ca191736_D20210701-20210930"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI5LTYtMS0xLTM0Mzg0_5c9c3ba5-361e-4894-83d1-bffaadd7d4ad"
      unitRef="usdPerShare">0.03</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
      contextRef="i4fc808860d28405daa2fbb90f800fb9c_D20211001-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI5LTgtMS0xLTM0Mzg0_d832061e-3dde-4f52-9a23-a49c5b7fcb8d"
      unitRef="usdPerShare">0.03</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
    <us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzI5LTEwLTEtMS0zNDM4NA_8418700f-6016-4980-8361-0b702c0d1d56"
      unitRef="usdPerShare">0.13</us-gaap:IncomeLossFromDiscontinuedOperationsNetOfTaxPerDilutedShare>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i8bb6789dd2f843cb82a83fd5fc2577ba_D20210101-20210331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzMwLTItMS0xLTM0Mzg0_dcf435e4-88e9-4c52-a486-f1f131b1cf09"
      unitRef="usdPerShare">0.01</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="ib02166c7239b48fa890b13833088a8d6_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzMwLTQtMS0xLTM0Mzg0_543bdb15-7469-4071-8d67-a2790733e3a0"
      unitRef="usdPerShare">0.08</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="ica6fdfd9286c4d57995a6511ca191736_D20210701-20210930"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzMwLTYtMS0xLTM0Mzg0_4dc8019e-1ce7-44a6-a80f-394c9e93f379"
      unitRef="usdPerShare">-0.07</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i4fc808860d28405daa2fbb90f800fb9c_D20211001-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzMwLTgtMS0xLTM0Mzg0_6ea292bf-08be-4457-8326-f43489ab5699"
      unitRef="usdPerShare">-0.26</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="ic1cd77b3e81042d4af50499387a9dae9_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTAvZnJhZzo2OTdmMWUzNDE1ODA0YTBiODNkYzljZTcxNzllMGQ5NS90YWJsZTpiMDk3NTE3ZGY5Njg0YWUyOGUwMWZiNjZiYTVjNzYwZi90YWJsZXJhbmdlOmIwOTc1MTdkZjk2ODRhZTI4ZTAxZmI2NmJhNWM3NjBmXzMwLTEwLTEtMS0zNDM4NA_5dba6695-53eb-4f40-a575-7f4c6e9120ee"
      unitRef="usdPerShare">-0.24</us-gaap:EarningsPerShareDiluted>
    <srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock
      contextRef="i9b63832dfc274b8f80f0e64dc5212d3f_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90ZXh0cmVnaW9uOjM0MGEyNzRlZDE4MTQyYmM4NjVhYzI3M2Y5MGI5MGMyXzIxMg_eebc72d0-73e2-4c0f-867a-2c721aedba84">&lt;div style="margin-top:8pt;text-align:right"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Schedule II&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;CUMBERLAND PHARMACEUTICALS INC. AND SUBSIDIARIES&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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;Valuation and Qualifying Accounts&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:4pt;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;Years ended December&#160;31, 2022, 2021 and 2020&lt;/span&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 style="width:25.182%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.761%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.400%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.761%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.438%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:3.226%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.278%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.723%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.720%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:3.387%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.724%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Description&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Balance at&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;beginning&#160;of&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Charged to&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;costs and&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;expenses&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Charged&#160;to&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;other&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;accounts&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Deductions&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;Balance at&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:100%"&gt;end&#160;of&#160;period&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Allowance for uncollectible amounts, cash discounts, chargebacks, and credits issued for damaged products:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="text-indent:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;For the years ended &lt;/span&gt;&lt;/div&gt;&lt;div style="text-indent:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 25pt;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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;984,677&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,963,279&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(3,606,992)&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;340,964&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;340,964&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,673,104&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;(6,417,977)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;596,091&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:9pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;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;Valuation allowance for deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div style="text-indent:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;For the years ended &lt;/span&gt;&lt;/div&gt;&lt;div style="text-indent:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;December 31:&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt 2px 25pt;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;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,196,121&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;565,801&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,761,922&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;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;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19,761,922&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,795,862&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;21,557,784&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:8pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"&gt;   &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;Composed of actual returns and credits for chargebacks and cash discounts.&lt;/span&gt;&lt;/div&gt;</srt:ScheduleOfValuationAndQualifyingAccountsDisclosureTextBlock>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="if5de2643b16c42518868295369efe808_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzUtMi0xLTEtMzQzODQ_c4bb0b63-4f03-4462-893c-31cd20b21b50"
      unitRef="usd">984677</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="i3a1250f3410e437492a31418c8974e8c_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzUtNC0xLTEtMzQzODQ_c5e9e937-0870-4796-9eda-237ab787d18f"
      unitRef="usd">2963279</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts
      contextRef="i3a1250f3410e437492a31418c8974e8c_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzUtNi0xLTEtMzQzODQ_be24a9ce-af22-451a-9f95-fdef1b26ea1a"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="i3a1250f3410e437492a31418c8974e8c_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzUtOC0xLTEtMzQzODQ_25479654-2fa1-4d77-8158-5e2d3888d851"
      unitRef="usd">3606992</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i34ed7d5354534fbd81b84cc0aa0d8e79_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzUtMTAtMS0xLTM0Mzg0_62b3968d-2b51-4ce0-b452-a94223e0140d"
      unitRef="usd">340964</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i34ed7d5354534fbd81b84cc0aa0d8e79_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzYtMi0xLTEtMzQzODQ_8e5f7ff0-4c2b-4c76-b006-1d0009e06a9f"
      unitRef="usd">340964</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="id183facaeebd467fa69fbb2fec9d0b3e_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzYtNC0xLTEtMzQzODQ_806db7f6-7c50-45fb-b5ae-638e5455eef0"
      unitRef="usd">6673104</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts
      contextRef="id183facaeebd467fa69fbb2fec9d0b3e_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzYtNi0xLTEtMzQzODQ_c25011be-45b9-47de-a406-daaf9617a76d"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="id183facaeebd467fa69fbb2fec9d0b3e_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzYtOC0xLTEtMzQzODQ_43d642a4-8c71-4805-ba9b-bd2d02a27f70"
      unitRef="usd">6417977</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="ib9019082259e456fb9c5846dc8fa2c23_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzYtMTAtMS0xLTM0Mzg0_3dec28da-86ab-403d-830b-71dba4612df6"
      unitRef="usd">596091</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="ief70e45bdb5146d0818d09d8a9fc3591_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzExLTItMS0xLTM0Mzg0_350e1d22-161f-410b-b01c-bd358e67a109"
      unitRef="usd">19196121</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="i13f27dbe43754f2393a096db946b5293_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzExLTQtMS0xLTM0Mzg0_3d139dc2-ee73-4768-9284-5cfdd6447245"
      unitRef="usd">565801</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts
      contextRef="i13f27dbe43754f2393a096db946b5293_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzExLTYtMS0xLTM0Mzg0_dd71b828-d578-402d-964e-a09ebeda0468"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="i13f27dbe43754f2393a096db946b5293_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzExLTgtMS0xLTM0Mzg0_4563f5b0-6a8a-4177-9cb5-d59ff949b3b2"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i70c9db8d427e4e07a83726736dbc62f8_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzExLTEwLTEtMS0zNDM4NA_5f35502a-68a7-4c78-87a2-31db9c3c128b"
      unitRef="usd">19761922</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i70c9db8d427e4e07a83726736dbc62f8_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzEyLTItMS0xLTM0Mzg0_1c776c7b-4a4c-4a57-a228-d2d6d96b271f"
      unitRef="usd">19761922</us-gaap:ValuationAllowancesAndReservesBalance>
    <us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense
      contextRef="idce9bb4f17eb40309dbdc88fdb74adc9_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzEyLTQtMS0xLTM0Mzg0_3659327f-d347-412b-b9a9-67067ac0b83c"
      unitRef="usd">1795862</us-gaap:ValuationAllowancesAndReservesChargedToCostAndExpense>
    <us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts
      contextRef="idce9bb4f17eb40309dbdc88fdb74adc9_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzEyLTYtMS0xLTM0Mzg0_33d23c93-056e-4b54-b676-6e6ab08a357f"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesChargedToOtherAccounts>
    <us-gaap:ValuationAllowancesAndReservesDeductions
      contextRef="idce9bb4f17eb40309dbdc88fdb74adc9_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzEyLTgtMS0xLTM0Mzg0_0dd3cae7-881f-46fd-ac6d-0d9f6524baa0"
      unitRef="usd">0</us-gaap:ValuationAllowancesAndReservesDeductions>
    <us-gaap:ValuationAllowancesAndReservesBalance
      contextRef="i1857a0d9d671486aa8f09353d5b63f37_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjNlMzZjZmM1NmUxYTQyNzVhNTJiN2Q1NjAwMTRkMTc2L3NlYzozZTM2Y2ZjNTZlMWE0Mjc1YTUyYjdkNTYwMDE0ZDE3Nl8yNTMvZnJhZzozNDBhMjc0ZWQxODE0MmJjODY1YWMyNzNmOTBiOTBjMi90YWJsZTpmYjM0NjQ5NDQ1YWY0ZTM1YjgyNTRkOTcxZTVkNzQzZS90YWJsZXJhbmdlOmZiMzQ2NDk0NDVhZjRlMzViODI1NGQ5NzFlNWQ3NDNlXzEyLTEwLTEtMS0zNDM4NA_f1e3fb31-af04-45d3-b1c7-041d204ae47b"
      unitRef="usd">21557784</us-gaap:ValuationAllowancesAndReservesBalance>
</xbrl>
