<?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/20230331"
  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-20230331.xsd" xlink:type="simple"/>
    <context id="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i27c4c4f9bc9f49feb1b517e2603bb2ba_I20230508">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2023-05-08</instant>
        </period>
    </context>
    <context id="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ibba680830ba242bcb44427bccbf7460f_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="i96d025b4c8184275861452edd929096a_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i3eac396c436f4fae8b8a3e449c851b53_I20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2022-03-31</instant>
        </period>
    </context>
    <context id="id21988457a994b099a86739b6cdbca82_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="ie1f4ea962c494b878bb4241ac43c41fa_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="ie8ec9abedb8c43f19d55e4f7e45c8eb7_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="i6e57b172666d4a2288b8e5fde755512d_D20220101-20220331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="ie8e03fa7b331473ab77acfc2afa51189_D20220101-20220331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="idc23b71a673d4599bd2a0ba1407fe4fb_D20220101-20220331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="icd26126c59e14812b272518a9b7d3f44_I20220331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="ic0a37457ed334e9b9592ba8aed5a1663_I20220331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="i616be1943a9849518944ae4c97161c10_I20220331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="i744c798ff3df40f18e613495868bac21_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="ide3cf6fd3f4f4b59bea565cd4bff5a6e_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="i530b250ef27949bba5fb487444051c84_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="icf9186d88cd34c189ca611958661dbf7_D20230101-20230331">
        <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>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i253227b0f5924873a6f1b2ff8dcc1d6f_D20230101-20230331">
        <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>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i940da1c588fe4d13ad77dfd49e66aad3_D20230101-20230331">
        <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>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="ieaa823ff0ab54452af8bbfadfb40cf88_I20230331">
        <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>2023-03-31</instant>
        </period>
    </context>
    <context id="ie061a82abf3d48ddab2142be4e8bf214_I20230331">
        <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>2023-03-31</instant>
        </period>
    </context>
    <context id="i44a1615e590c493a868e0826fbbf8abd_I20230331">
        <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>2023-03-31</instant>
        </period>
    </context>
    <context id="ic5ec9fd4fee24747aa5425a2da34ca15_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:KristaloseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="ia1390383e91148dca5ab8bb6aec95eaa_D20220101-20220331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="ifaee959e87604f9b8afd1f3f35e7279f_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:SancusoMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i0b5edc8419e647ee824fdb81e180ad31_D20220101-20220331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="ica71cbb512a74596b40cd7a2f3f45ac6_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:VIBATIVMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="ie245a45f71a44cf49e04fb9e7a1b64c0_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:VIBATIVMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i6f492dd29e9e496ab0c32db9bde2fad5_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:CaldolorMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i4fa8cd8c9bc645fd917139e4733faee9_D20220101-20220331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="iff66fc78303f42288cd05a0391f52e8d_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:AcetadoteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i8b303705e50348069ce4d7d41176c589_D20220101-20220331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="if7b3c21a06344e6daf54cef8c4bea836_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:VaprisolMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i34fd69d4d0114a3891b1fd1b5cd85e8f_D20220101-20220331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="if792fa0d44004e868ffe0fb9dcc009a6_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:OmeclamoxPakMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i877bdcd11bf84e83a844f6f7f0340018_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:OmeclamoxPakMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="if834c35329184e12bfc00925eb9c78b3_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:RediTrexMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i89705d4ba770443aa81891ed098d2e82_D20220101-20220331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="iefe426f8f9cf4fadacc86244be87455b_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:OtherProductsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i56a471ba8e2a4536a4fee60860c84a40_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">cpix:OtherProductsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="if42572ad56a64b2a829bd4df6389654b_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:GrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i2233569d7a744fb9be2b55c9f18e5f65_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:GrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="i7c76ad6b0d9d43bea791e5d7ff63409c_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="if921eb31fa6f45b39876cdd2bde81d95_I20230331">
        <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>2023-03-31</instant>
        </period>
    </context>
    <context id="i0b68b7b01134465aa81635021c31c2ee_I20230331">
        <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>2023-03-31</instant>
        </period>
    </context>
    <context id="i939a45f5061a4a48958225d296e46077_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="i4f1ce978139642ffa57f5d8efd6a152c_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="i3a8364b46d1349f89526bbca803b9b2b_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="iaf2b4c3ed09b49c69ab36803117edced_I20211115">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <instant>2021-11-15</instant>
        </period>
    </context>
    <context id="i049b67a4ada841f8a2827489c1ede626_I20230331">
        <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>2023-03-31</instant>
        </period>
    </context>
    <context id="i50b28adc088b4efea984106ab32c61d9_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:A1600WestEndAvenuePartnersLLCMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="ia97aab9d7d684fd486afb0916cc296bb_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:CETMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i4afbcb5fba4d4a1d8a087e5d9008e5d9_I20100513">
        <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>2010-05-13</instant>
        </period>
    </context>
    <context id="i7d99bf36d0104e0388920db036eb3ed2_I20160131">
        <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>2016-01-31</instant>
        </period>
    </context>
    <context id="i4b57a58712e74809ae2518a342bbfc8a_D20171101-20171130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
        </entity>
        <period>
            <startDate>2017-11-01</startDate>
            <endDate>2017-11-30</endDate>
        </period>
    </context>
    <context id="i1c55618f6c5a49939c91a52e719a9556_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="i418c071f773e493bbdd32949f539f542_D20230101-20230331">
        <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>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i013a01798b674990bda32746a63a9bcd_D20220101-20220331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="i3dd89fce4bbe496ab54a639f67e6966d_D20230101-20230331">
        <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>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i4e8b5ebbe5f54d37acb467699b819d53_D20230101-20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cpix:IncentiveStockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i63b30cb0dab0416e82e2367680b40f47_D20220101-20220331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">cpix:IncentiveStockOptionsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-03-31</endDate>
        </period>
    </context>
    <context id="iffcd93d62bab4e44a26be01fd717844c_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:SixthAmendmentMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">cpix:PinnacleBankMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i0ee792037ad24f32a193eaf0a425d5ac_D20220401-20220930">
        <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:EightAmendmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-04-01</startDate>
            <endDate>2022-09-30</endDate>
        </period>
    </context>
    <context id="id8989818d082428f810a0f2d67d1ba2a_D20220101-20221231">
        <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:EightAmendmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i7bf205d89d0f4bbc97a466819e38a259_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="ib87aa9b105bd42a19d2435ddfe7a7834_D20200814-20200814">
        <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>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-08-14</startDate>
            <endDate>2020-08-14</endDate>
        </period>
    </context>
    <context id="i47da99f45e0440398ffd975817b2efce_D20200814-20200814">
        <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>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-08-14</startDate>
            <endDate>2020-08-14</endDate>
        </period>
    </context>
    <context id="i8117fb7667394b2f8d51eb672ad660af_D20200814-20200814">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:LondonInterbankOfferedRateLIBORMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-08-14</startDate>
            <endDate>2020-08-14</endDate>
        </period>
    </context>
    <context id="ifa9c80f982f947eebf8cfe734dbb223d_I20230331">
        <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>2023-03-31</instant>
        </period>
    </context>
    <context id="i17124cadeabb43b783b97a30611b1131_D20230101-20230331">
        <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>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i314d6baf5bd141d09dc589a0d087077a_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i014f95ecf28e47dc9a81e3356a78cbfa_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="idd2a67aac74043969c46355ae44bb9ff_I20200831">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">cpix:WinHealthInvestmentSingaporeLtdMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:ConvertibleDebtMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-08-31</instant>
        </period>
    </context>
    <context id="i90e00eccd5aa49ab87f56422938153e5_I20230331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001087294</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-03-31</instant>
        </period>
    </context>
    <context id="i910d1c8e30b447a685124ae92adb5f51_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="i499b37cd8cf54392a0f2ec322fe40eee_D20230101-20230331">
        <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>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="idee1724666bd4296b087588595669561_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="i8321269afd0c421ebdd0224b1a27d392_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="i47826f88ea0b4a6eb3f2a0fbce1e5c79_D20230101-20230331">
        <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>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i4038ab9268e54e9ea5e0321e85b66082_I20200731">
        <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>2020-07-31</instant>
        </period>
    </context>
    <context id="i55d3542573f24209aee0933490837ee7_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="i90fc46e8567a4446ba6f1f69166c1051_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="id0e8f0a1b5ac44cfa0861149a172d293_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="i20b2ea64a45e4649b835fa2bde154e6d_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="ibcdddac945434b87b9564d50977a987e_D20230101-20230331">
        <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>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i44f4dc27a7c64611b4e00cd930bd4746_I20230331">
        <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>2023-03-31</instant>
        </period>
    </context>
    <context id="icb7fb24ed38f426d9b39670f3390245e_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="ie9300edb1e774e3ea979ca48d8d32a68_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="id571878b227b429aabb39f702150f09b_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="i339eef896e214990b9293f54ead2c9f0_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="i34ec3c62de204f83a7f07694bba18e4f_D20230101-20230331">
        <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>2023-01-01</startDate>
            <endDate>2023-03-31</endDate>
        </period>
    </context>
    <context id="i339bfc5c1c8e48d58f19079fc7a04235_I20230331">
        <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>2023-03-31</instant>
        </period>
    </context>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="segment">
        <measure>cpix:Segment</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="number">
        <measure>pure</measure>
    </unit>
    <unit id="q">
        <measure>utr:Q</measure>
    </unit>
    <dei:DocumentFiscalYearFocus
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80L2ZyYWc6YzJiODBlOGU4MTQ1NGE1M2FiZmY5Nzk5NzkxOWViNDEvdGFibGU6NDYxMGEyMzA2NWI5NGU4Yjk0ODMwM2M3YTYwN2M1NGUvdGFibGVyYW5nZTo0NjEwYTIzMDY1Yjk0ZThiOTQ4MzAzYzdhNjA3YzU0ZV81LTEtMS0xLTQ1OTA2_e91dbbd5-1772-4069-a4e0-721551a937e4">2023</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80L2ZyYWc6YzJiODBlOGU4MTQ1NGE1M2FiZmY5Nzk5NzkxOWViNDEvdGFibGU6NDYxMGEyMzA2NWI5NGU4Yjk0ODMwM2M3YTYwN2M1NGUvdGFibGVyYW5nZTo0NjEwYTIzMDY1Yjk0ZThiOTQ4MzAzYzdhNjA3YzU0ZV82LTEtMS0xLTQ1OTA2_36bc45fc-12a0-4b9c-aab1-1f66cd59c20d">Q1</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80L2ZyYWc6YzJiODBlOGU4MTQ1NGE1M2FiZmY5Nzk5NzkxOWViNDEvdGFibGU6NDYxMGEyMzA2NWI5NGU4Yjk0ODMwM2M3YTYwN2M1NGUvdGFibGVyYW5nZTo0NjEwYTIzMDY1Yjk0ZThiOTQ4MzAzYzdhNjA3YzU0ZV83LTEtMS0xLTQ1OTA2_258061ea-699d-496c-ac95-b3c8fa0d8b76">false</dei:AmendmentFlag>
    <dei:CurrentFiscalYearEndDate
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80L2ZyYWc6YzJiODBlOGU4MTQ1NGE1M2FiZmY5Nzk5NzkxOWViNDEvdGV4dHJlZ2lvbjpjMmI4MGU4ZTgxNDU0YTUzYWJmZjk3OTk3OTE5ZWI0MV83OA_34250378-6ef5-4082-b78a-f6f24b0a7182">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:EntityCentralIndexKey
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80L2ZyYWc6YzJiODBlOGU4MTQ1NGE1M2FiZmY5Nzk5NzkxOWViNDEvdGV4dHJlZ2lvbjpjMmI4MGU4ZTgxNDU0YTUzYWJmZjk3OTk3OTE5ZWI0MV83OQ_4aa1bcf5-8a18-4e5b-bcfd-0f3411d6ec03">0001087294</dei:EntityCentralIndexKey>
    <dei:DocumentType
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGV4dHJlZ2lvbjpkODE2OTJiNTAxMDQ0NWEyYjIyZGU5M2Q2ZmVlZjA0ZV8xOTc4_eb280995-c009-44ad-84be-472cdf787274">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6MGI3Njc5MDVhY2M3NDk5ZGIzY2NlMzJlNjVhMGViZDcvdGFibGVyYW5nZTowYjc2NzkwNWFjYzc0OTlkYjNjY2UzMmU2NWEwZWJkN18wLTAtMS0xLTQ1OTA2_f7f1cd2c-3205-43a6-894d-0c7373a2c6b5">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGV4dHJlZ2lvbjpkODE2OTJiNTAxMDQ0NWEyYjIyZGU5M2Q2ZmVlZjA0ZV8xMzA_a63e72d7-6d83-41ed-b7aa-3d24b5bd6f27">2023-03-31</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6N2FkZjNlMjRkZWFhNGY5MjhmYWQ2ODY2YjRmMjg4OTAvdGFibGVyYW5nZTo3YWRmM2UyNGRlYWE0ZjkyOGZhZDY4NjZiNGYyODg5MF8wLTAtMS0xLTQ1OTA2_735fe5b7-b0cc-4f3f-940b-88e36f739a3e">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGV4dHJlZ2lvbjpkODE2OTJiNTAxMDQ0NWEyYjIyZGU5M2Q2ZmVlZjA0ZV8xOTc5_f6576d62-11a4-4f54-b6e0-82dd3cbc6db6">001-33637</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGV4dHJlZ2lvbjpkODE2OTJiNTAxMDQ0NWEyYjIyZGU5M2Q2ZmVlZjA0ZV8xOTgw_4cd3f967-5aba-4551-975d-1ae1cd28f842">Cumberland Pharmaceuticals Inc.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6NmIwNTZhOTIyYzUyNGY0NTg2MjYzZjY5MGFiOTdhMjIvdGFibGVyYW5nZTo2YjA1NmE5MjJjNTI0ZjQ1ODYyNjNmNjkwYWI5N2EyMl8wLTAtMS0xLTQ1OTA2_0b940a30-fe8d-4f77-88d1-8497fc426aca">TN</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6NmIwNTZhOTIyYzUyNGY0NTg2MjYzZjY5MGFiOTdhMjIvdGFibGVyYW5nZTo2YjA1NmE5MjJjNTI0ZjQ1ODYyNjNmNjkwYWI5N2EyMl8wLTItMS0xLTQ1OTA2_4b710a0f-4c16-48db-8a9e-a874c7733132">62-1765329</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6NmIwNTZhOTIyYzUyNGY0NTg2MjYzZjY5MGFiOTdhMjIvdGFibGVyYW5nZTo2YjA1NmE5MjJjNTI0ZjQ1ODYyNjNmNjkwYWI5N2EyMl8zLTAtMS0xLTQ1OTA2L3RleHRyZWdpb246ODVjYmU4OTQ3OTBlNGZkOWI4YzUzYWNlNWQ2NWJkOGVfNQ_33ec143c-0001-4c90-ad27-0edf7125ac50">1600 West End Avenue</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6NmIwNTZhOTIyYzUyNGY0NTg2MjYzZjY5MGFiOTdhMjIvdGFibGVyYW5nZTo2YjA1NmE5MjJjNTI0ZjQ1ODYyNjNmNjkwYWI5N2EyMl8zLTAtMS0xLTQ1OTA2L3RleHRyZWdpb246ODVjYmU4OTQ3OTBlNGZkOWI4YzUzYWNlNWQ2NWJkOGVfOQ_db723715-6376-4734-bf26-e1211ac3cd17">Suite 1300</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6NmIwNTZhOTIyYzUyNGY0NTg2MjYzZjY5MGFiOTdhMjIvdGFibGVyYW5nZTo2YjA1NmE5MjJjNTI0ZjQ1ODYyNjNmNjkwYWI5N2EyMl8zLTAtMS0xLTQ1OTA2L3RleHRyZWdpb246ODVjYmU4OTQ3OTBlNGZkOWI4YzUzYWNlNWQ2NWJkOGVfMTM_73865011-75a0-4674-a453-66edbb0fe090">Nashville</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6NmIwNTZhOTIyYzUyNGY0NTg2MjYzZjY5MGFiOTdhMjIvdGFibGVyYW5nZTo2YjA1NmE5MjJjNTI0ZjQ1ODYyNjNmNjkwYWI5N2EyMl8zLTAtMS0xLTQ1OTA2L3RleHRyZWdpb246ODVjYmU4OTQ3OTBlNGZkOWI4YzUzYWNlNWQ2NWJkOGVfMTc_a8ae3e36-64a8-41d5-a754-38efec4ced61">TN</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6NmIwNTZhOTIyYzUyNGY0NTg2MjYzZjY5MGFiOTdhMjIvdGFibGVyYW5nZTo2YjA1NmE5MjJjNTI0ZjQ1ODYyNjNmNjkwYWI5N2EyMl8zLTItMS0xLTQ1OTA2_7bb1f5e5-c8df-4de9-bddd-d66ca9e0a55f">37203</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGV4dHJlZ2lvbjpkODE2OTJiNTAxMDQ0NWEyYjIyZGU5M2Q2ZmVlZjA0ZV8xOTc2_dd4ff52a-9bb0-4f1d-bd4e-8d951d4d9b58">615</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGV4dHJlZ2lvbjpkODE2OTJiNTAxMDQ0NWEyYjIyZGU5M2Q2ZmVlZjA0ZV8xOTc3_4bc63d07-dd48-482d-86c1-4f0ed0b7e261">255-0068</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6NWJjNTYxZGM4NjNhNGMxYmI5OGJiN2E5ZmQ1M2YxYWMvdGFibGVyYW5nZTo1YmM1NjFkYzg2M2E0YzFiYjk4YmI3YTlmZDUzZjFhY18yLTAtMS0xLTQ1OTA2_669c1c3d-df60-4cad-b95b-501ad4dfeb4d">Common stock, no par value</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6NWJjNTYxZGM4NjNhNGMxYmI5OGJiN2E5ZmQ1M2YxYWMvdGFibGVyYW5nZTo1YmM1NjFkYzg2M2E0YzFiYjk4YmI3YTlmZDUzZjFhY18yLTItMS0xLTQ1OTA2_dc4d9de5-6041-4b71-b6a5-090e46699ffd">CPIX</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6NWJjNTYxZGM4NjNhNGMxYmI5OGJiN2E5ZmQ1M2YxYWMvdGFibGVyYW5nZTo1YmM1NjFkYzg2M2E0YzFiYjk4YmI3YTlmZDUzZjFhY18yLTQtMS0xLTQ1OTA2_7a869293-0705-4f7f-b275-449a83a9a2e3">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGV4dHJlZ2lvbjpkODE2OTJiNTAxMDQ0NWEyYjIyZGU5M2Q2ZmVlZjA0ZV8xOTgx_b53a9907-2ce4-4445-84c1-586343aa3574">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGV4dHJlZ2lvbjpkODE2OTJiNTAxMDQ0NWEyYjIyZGU5M2Q2ZmVlZjA0ZV8xOTcx_3570e918-7d27-4a96-b85c-4153695c1a60">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6OTc2NDk5ODc1NDQzNDEzMGJkYjQ5NzM1ZGM2YmNlMjAvdGFibGVyYW5nZTo5NzY0OTk4NzU0NDM0MTMwYmRiNDk3MzVkYzZiY2UyMF8xLTAtMS0xLTQ1OTA2_4527e1e6-0d82-4a15-9609-326daa172a0b">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6OTc2NDk5ODc1NDQzNDEzMGJkYjQ5NzM1ZGM2YmNlMjAvdGFibGVyYW5nZTo5NzY0OTk4NzU0NDM0MTMwYmRiNDk3MzVkYzZiY2UyMF8xLTUtMS0xLTQ1OTA2_e38f9779-56ed-435f-9a95-71be5b060999">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGFibGU6OTc2NDk5ODc1NDQzNDEzMGJkYjQ5NzM1ZGM2YmNlMjAvdGFibGVyYW5nZTo5NzY0OTk4NzU0NDM0MTMwYmRiNDk3MzVkYzZiY2UyMF8yLTItMS0xLTQ1OTA2_9f6fe5f6-1705-4e37-b1a7-c883d1d1c208">false</dei:EntityEmergingGrowthCompany>
    <dei:EntityShellCompany
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGV4dHJlZ2lvbjpkODE2OTJiNTAxMDQ0NWEyYjIyZGU5M2Q2ZmVlZjA0ZV8xMDk5NTExNjI5NzU4_c90b406b-1099-4403-b521-c9ef7ed66cb5">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i27c4c4f9bc9f49feb1b517e2603bb2ba_I20230508"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xL2ZyYWc6ZDgxNjkyYjUwMTA0NDVhMmIyMmRlOTNkNmZlZWYwNGUvdGV4dHJlZ2lvbjpkODE2OTJiNTAxMDQ0NWEyYjIyZGU5M2Q2ZmVlZjA0ZV8xOTM2_2d088b15-f3cb-43f4-9ad1-509cd36dc7d5"
      unitRef="shares">14449107</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMy0xLTEtMS00NTkwNg_a56c3c10-7ba8-4990-beac-f208dd46079a"
      unitRef="usd">16386166</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMy0zLTEtMS00NTkwNg_880a2df1-a79a-431f-a531-e86248d01360"
      unitRef="usd">19757970</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfNS0xLTEtMS00NTkwNg_3cf420bb-ebf2-46ef-8361-c8cfc35ff6af"
      unitRef="usd">14529133</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfNS0zLTEtMS00NTkwNg_14324f0d-e24c-4c73-8086-b69dadad8850"
      unitRef="usd">13163681</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:InventoryNet
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfNi0xLTEtMS00NTkwNg_5a9a75d0-57f3-4bdc-868b-2b4e8bdcdcab"
      unitRef="usd">10180002</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfNi0zLTEtMS00NTkwNg_dd3af581-6c64-46fe-a41f-29093c94937f"
      unitRef="usd">9863581</us-gaap:InventoryNet>
    <us-gaap:OtherAssetsCurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfNy0xLTEtMS00NTkwNg_89a417c2-df29-4767-ad9c-48a169861bdf"
      unitRef="usd">2715498</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfNy0zLTEtMS00NTkwNg_dc096af7-11f3-40f9-a4a4-6530440b08de"
      unitRef="usd">3084978</us-gaap:OtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfOC0xLTEtMS00NTkwNg_090d2977-d3f9-41a6-9d10-4bdd580087b0"
      unitRef="usd">43810799</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfOC0zLTEtMS00NTkwNg_f8d57035-5185-45c3-8a3a-5f995c532135"
      unitRef="usd">45870210</us-gaap:AssetsCurrent>
    <us-gaap:InventoryNoncurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfOS0xLTEtMS00NTkwNg_dd1d229e-99f8-40fa-8160-7a6bc17a4522"
      unitRef="usd">7534303</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryNoncurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfOS0zLTEtMS00NTkwNg_25de867d-342e-4a2f-81b1-a0460151e24d"
      unitRef="usd">7527167</us-gaap:InventoryNoncurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTAtMS0xLTEtNDU5MDY_05d7ab5c-ca33-401b-940c-74af713670b4"
      unitRef="usd">354857</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTAtMy0xLTEtNDU5MDY_8005443d-c397-4a28-92f7-e7589b3f953c"
      unitRef="usd">284039</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTEtMS0xLTEtNDU5MDY_54ec5223-02f5-47dd-9caf-e1384419821d"
      unitRef="usd">29390195</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTEtMy0xLTEtNDU5MDY_86f2ee84-426b-4299-874e-e7338080b516"
      unitRef="usd">30590678</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:Goodwill
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTItMS0xLTEtNDU5MDY_de45a86c-64d6-4f6d-9bba-547be00d3f15"
      unitRef="usd">914000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTItMy0xLTEtNDU5MDY_0037ca50-1824-452c-9f85-347018fbced0"
      unitRef="usd">914000</us-gaap:Goodwill>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTMtMS0xLTEtNDU5MDY_fe814e99-2316-4fc7-bc16-8b89207dd3c2"
      unitRef="usd">4919057</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTMtMy0xLTEtNDU5MDY_1fb1f54e-49bc-4d03-acca-49f1251cccb3"
      unitRef="usd">5218403</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTQtMS0xLTEtNDU5MDY_e8bf450a-3ca7-44c5-aeae-631e7be06fd1"
      unitRef="usd">2545424</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTQtMy0xLTEtNDU5MDY_07d85e11-ee9a-4bee-8f7e-65e2eeaf639f"
      unitRef="usd">2520661</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTUtMS0xLTEtNDU5MDY_ae96760f-fa46-4587-85f4-be1d8809a8a3"
      unitRef="usd">89468635</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTUtMy0xLTEtNDU5MDY_4c6911a8-4aee-4331-b61a-f872ec63c21a"
      unitRef="usd">92925158</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTgtMS0xLTEtNDU5MDY_8f2f2e65-e7c1-4d02-b7a1-a9baecc601b8"
      unitRef="usd">11222333</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTgtMy0xLTEtNDU5MDY_5c507205-49a3-49ed-978a-41ca85a3f381"
      unitRef="usd">10819011</us-gaap:AccountsPayableCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTktMS0xLTEtNDU5MDY_625592fc-26c1-4aef-a368-e3f63d6aa880"
      unitRef="usd">158369</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMTktMy0xLTEtNDU5MDY_27bceb99-63df-4736-b85f-1937d17866ff"
      unitRef="usd">172910</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjAtMS0xLTEtNDU5MDY_bf40b15b-ce1c-466f-9a64-0abd251a952e"
      unitRef="usd">14326712</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:OtherLiabilitiesCurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjAtMy0xLTEtNDU5MDY_4f54f7b7-a621-423e-8b8b-5eea91210acf"
      unitRef="usd">17587911</us-gaap:OtherLiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjEtMS0xLTEtNDU5MDY_f8711102-a83b-48b5-98e5-bb8254513f61"
      unitRef="usd">25707414</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjEtMy0xLTEtNDU5MDY_1414c7b4-f333-4dd7-b2c1-f00e76dbee07"
      unitRef="usd">28579832</us-gaap:LiabilitiesCurrent>
    <us-gaap:LongTermLineOfCredit
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjItMS0xLTEtNDU5MDY_f320458a-4117-4286-8880-9f3e4e895174"
      unitRef="usd">16072286</us-gaap:LongTermLineOfCredit>
    <us-gaap:LongTermLineOfCredit
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjItMy0xLTEtNDU5MDY_ea2b9cd5-fbe7-41a5-a8f1-9084ac8cee58"
      unitRef="usd">16200000</us-gaap:LongTermLineOfCredit>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjMtMS0xLTEtNDU5MDY_26722223-5f54-4237-b6cd-cbdb09e88c91"
      unitRef="usd">4549150</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjMtMy0xLTEtNDU5MDY_72671995-3378-470a-ab53-704fa0cbdb4b"
      unitRef="usd">4586301</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjQtMS0xLTEtNDU5MDY_0b126fd1-3a4b-4427-8854-e22483ba8c03"
      unitRef="usd">7091298</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjQtMy0xLTEtNDU5MDY_e61de44f-883d-4665-982a-1b8d2b30356e"
      unitRef="usd">7585019</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjUtMS0xLTEtNDU5MDY_0c1025f9-51f9-41a3-8847-5247a00835b3"
      unitRef="usd">53420148</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjUtMy0xLTEtNDU5MDY_68773356-161b-4fde-8cc3-7951f6a5dfe0"
      unitRef="usd">56951152</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjYtMS0xLTEtNDU5MDY_9a5b7527-aa83-4a22-a8fb-3d5d16bcbc81"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjYtMy0xLTEtNDU5MDY_2f959384-b609-4900-9d49-90d50db57e59"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommonStockNoParValue
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjktMC0xLTEtNDU5MDYvdGV4dHJlZ2lvbjoxNGQwNzUwY2MyNWI0YTgzYTYxOTY4MjU2MzZhNjgxOF8xNw_796cdd08-b154-44d2-a010-6a49d7e0e236"
      unitRef="usdPerShare">0</us-gaap:CommonStockNoParValue>
    <us-gaap:CommonStockNoParValue
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjktMC0xLTEtNDU5MDYvdGV4dHJlZ2lvbjoxNGQwNzUwY2MyNWI0YTgzYTYxOTY4MjU2MzZhNjgxOF8xNw_9564c557-af45-4f13-9037-324faa01c50a"
      unitRef="usdPerShare">0</us-gaap:CommonStockNoParValue>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjktMC0xLTEtNDU5MDYvdGV4dHJlZ2lvbjoxNGQwNzUwY2MyNWI0YTgzYTYxOTY4MjU2MzZhNjgxOF8zMQ_4d6f73ea-b037-4b0d-a91b-e57a0e85507a"
      unitRef="shares">100000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjktMC0xLTEtNDU5MDYvdGV4dHJlZ2lvbjoxNGQwNzUwY2MyNWI0YTgzYTYxOTY4MjU2MzZhNjgxOF8zMQ_a668b94f-79d6-4e65-9c94-8d6fb39902ff"
      unitRef="shares">100000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjktMC0xLTEtNDU5MDYvdGV4dHJlZ2lvbjoxNGQwNzUwY2MyNWI0YTgzYTYxOTY4MjU2MzZhNjgxOF81Mw_d566e791-201f-49c3-89a7-1c755233c38b"
      unitRef="shares">14430047</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjktMC0xLTEtNDU5MDYvdGV4dHJlZ2lvbjoxNGQwNzUwY2MyNWI0YTgzYTYxOTY4MjU2MzZhNjgxOF81Mw_dfc5f9d7-cc1b-43bb-aa36-3d08b1ab52c3"
      unitRef="shares">14430047</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjktMC0xLTEtNDU5MDYvdGV4dHJlZ2lvbjoxNGQwNzUwY2MyNWI0YTgzYTYxOTY4MjU2MzZhNjgxOF82MA_483eb954-9161-423e-a74a-bab28e7d4ec8"
      unitRef="shares">14366316</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjktMC0xLTEtNDU5MDYvdGV4dHJlZ2lvbjoxNGQwNzUwY2MyNWI0YTgzYTYxOTY4MjU2MzZhNjgxOF82MA_5d91b084-7042-44b6-aebd-342378e6f5c6"
      unitRef="shares">14366316</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjktMS0xLTEtNDU5MDY_e7ae363e-91e6-463c-b095-5d663e917342"
      unitRef="usd">47377168</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMjktMy0xLTEtNDU5MDY_edc123a8-d798-4e82-8c98-7a72c83604c4"
      unitRef="usd">47474973</us-gaap:CommonStockValue>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMzAtMS0xLTEtNDU5MDY_5c6c6891-8379-47ce-bb55-2cc3d2a848b4"
      unitRef="usd">-11016657</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMzAtMy0xLTEtNDU5MDY_befbf3de-900f-476e-816c-e2b6ada33229"
      unitRef="usd">-11208841</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMzEtMS0xLTEtNDU5MDY_dd2eaed8-17d9-4059-8991-f27b339bed77"
      unitRef="usd">36360511</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMzEtMy0xLTEtNDU5MDY_09b26740-a511-4f30-bdb2-0895c0e071b8"
      unitRef="usd">36266132</us-gaap:StockholdersEquity>
    <us-gaap:MinorityInterest
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMzItMS0xLTEtNDU5MDY_1f7d4575-2615-4621-aa0e-1b1c1034db57"
      unitRef="usd">-312024</us-gaap:MinorityInterest>
    <us-gaap:MinorityInterest
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMzItMy0xLTEtNDU5MDY_b58bbf7d-a3db-4f6d-a463-bda3633ad109"
      unitRef="usd">-292126</us-gaap:MinorityInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMzMtMS0xLTEtNDU5MDY_4bf829a3-ad2a-4808-9c60-e1bee6c648ad"
      unitRef="usd">36048487</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMzMtMy0xLTEtNDU5MDY_65e149c9-e976-41d6-a80b-f7a82e9a0217"
      unitRef="usd">35974006</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMzQtMS0xLTEtNDU5MDY_49a0250a-7c78-4957-9718-b5432977dfad"
      unitRef="usd">89468635</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xNi9mcmFnOmRjYTE0MzNmZDg4ODQwNGI5ZTY5ODE4MTlmYTQ4Yjg2L3RhYmxlOmRmZjZiYjFiN2Y0ZDQzYjVhNzJjNzZkNTRkOWE3NzE0L3RhYmxlcmFuZ2U6ZGZmNmJiMWI3ZjRkNDNiNWE3MmM3NmQ1NGQ5YTc3MTRfMzQtMy0xLTEtNDU5MDY_bec5dc1c-a6b1-4f93-a997-446adb4bebc4"
      unitRef="usd">92925158</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMi0xLTEtMS00NTkwNg_ebe1a0b1-7037-4e47-bfe1-ba00584cc0c5"
      unitRef="usd">9224638</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMi0zLTEtMS00NTkwNg_6bc33ea4-5f60-4aea-a8ff-74ce5216684b"
      unitRef="usd">11175045</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfNC0xLTEtMS00NTkwNg_dcfba141-4df3-49e1-8c28-8c41571c6b92"
      unitRef="usd">1250264</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfNC0zLTEtMS00NTkwNg_f038a7e5-cee2-4c7c-bceb-4be4289f1929"
      unitRef="usd">2211885</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:SellingAndMarketingExpense
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfNS0xLTEtMS00NTkwNg_9ec22f6f-8ae8-472f-8c80-292dfaeeea2f"
      unitRef="usd">4277318</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfNS0zLTEtMS00NTkwNg_ae3b5cac-7aa9-4ae4-b66c-4f7e3724e8bb"
      unitRef="usd">4614429</us-gaap:SellingAndMarketingExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfNi0xLTEtMS00NTkwNg_4d0d22bb-ed3e-488b-be10-4aa83dbebd1a"
      unitRef="usd">1499670</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfNi0zLTEtMS00NTkwNg_acc35761-4b12-4c8a-b456-adc388add733"
      unitRef="usd">1745136</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfNy0xLTEtMS00NTkwNg_1bc226b2-510a-4559-9280-4bc41151a2e7"
      unitRef="usd">2498993</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfNy0zLTEtMS00NTkwNg_1647bfc4-b067-46f4-8bd8-743c5e57371d"
      unitRef="usd">2302349</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfOC0xLTEtMS00NTkwNg_03eff909-93b5-4e53-af8a-7f263df133af"
      unitRef="usd">1230071</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfOC0zLTEtMS00NTkwNg_a831904f-8ec2-47bc-8afe-3d2c3833ac3c"
      unitRef="usd">1593245</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:CostsAndExpenses
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfOS0xLTEtMS00NTkwNg_14028cf5-1a2c-4567-8657-e1f44d8eee8f"
      unitRef="usd">10756316</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfOS0zLTEtMS00NTkwNg_1b541a13-8db5-4324-91d2-fcaea3610afc"
      unitRef="usd">12467044</us-gaap:CostsAndExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTAtMS0xLTEtNDU5MDY_bbb3fc65-14b1-4e2b-928c-82d317c1c384"
      unitRef="usd">-1531678</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTAtMy0xLTEtNDU5MDY_f87e7195-fc3e-471d-a31f-cb556ed5432a"
      unitRef="usd">-1291999</us-gaap:OperatingIncomeLoss>
    <us-gaap:InvestmentIncomeInterest
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTEtMS0xLTEtNDU5MDY_7c6d2cbf-3bb2-480f-8b3a-b8b293285972"
      unitRef="usd">50190</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTEtMy0xLTEtNDU5MDY_9cd6d27c-d8af-423a-80bf-190d76b21d86"
      unitRef="usd">16041</us-gaap:InvestmentIncomeInterest>
    <us-gaap:OtherIncome
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTItMS0xLTEtNDU5MDY_aa383fd2-a70a-4fc3-a6a4-1a7249e9117f"
      unitRef="usd">1847065</us-gaap:OtherIncome>
    <us-gaap:OtherIncome
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTItMy0xLTEtNDU5MDY_2746ca63-edb2-4cc2-88b3-77f7030aede5"
      unitRef="usd">0</us-gaap:OtherIncome>
    <us-gaap:InterestExpense
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTQtMS0xLTEtNDU5MDY_35d29e7f-a457-4ae6-bb32-7152f7424f90"
      unitRef="usd">186353</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTQtMy0xLTEtNDU5MDY_04624263-e175-468d-87f8-0895016732c7"
      unitRef="usd">119575</us-gaap:InterestExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTUtMS0xLTEtNDU5MDY_806a88c5-4721-4c1b-b846-c8f360aa0332"
      unitRef="usd">179224</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTUtMy0xLTEtNDU5MDY_1c13fe6c-d86c-419e-ba92-f7558eb33499"
      unitRef="usd">-1395533</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTYtMS0xLTEtNDU5MDY_f5ed8099-02d2-4db5-b95c-65edf8e74478"
      unitRef="usd">6938</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTYtMy0xLTEtNDU5MDY_d99c7b4b-fdb6-4165-a7a3-2a3ab739b6fc"
      unitRef="usd">6900</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ProfitLoss
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTctMS0xLTEtNDU5MDY_dac7a762-07af-4eef-ad3c-2e4b2904da5d"
      unitRef="usd">172286</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMTctMy0xLTEtNDU5MDY_42df67d0-8226-42f5-8dd2-a81458216df1"
      unitRef="usd">-1402433</us-gaap:ProfitLoss>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMjAtMS0xLTEtNDU5MDY_6c485852-ab79-4700-aaf5-61a01f38492c"
      unitRef="usd">-19898</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMjAtMy0xLTEtNDU5MDY_7fbe3dd3-3ebd-4632-afb8-bf4977ff3bbd"
      unitRef="usd">-17180</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLoss
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMjEtMS0xLTEtNDU5MDY_bbc16342-8d6a-4237-a6cc-6fdee92e670e"
      unitRef="usd">192184</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMjEtMy0xLTEtNDU5MDY_cb3570f5-137c-4426-bef8-0b65078e1d72"
      unitRef="usd">-1385253</us-gaap:NetIncomeLoss>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMjMtMS0xLTEtNDU5MDY_3cbce3fc-3d2c-4285-8c4c-0e3a3cc72279"
      unitRef="usdPerShare">0.01</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerBasicShare
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMjMtMy0xLTEtNDU5MDY_d9b20e2c-d02c-4f9e-8a14-f859f9c907d6"
      unitRef="usdPerShare">-0.09</us-gaap:IncomeLossFromContinuingOperationsPerBasicShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMjctMS0xLTEtNDU5MDY_ec675850-e82f-4772-a306-134820e9e4f4"
      unitRef="usdPerShare">0.01</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMjctMy0xLTEtNDU5MDY_93eeccc2-80ef-4fb2-804a-1111719e8401"
      unitRef="usdPerShare">-0.09</us-gaap:IncomeLossFromContinuingOperationsPerDilutedShare>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMzEtMS0xLTEtNDU5MDY_9cb396bd-0c06-4f16-bc03-2b7324b4a7e1"
      unitRef="shares">14359322</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMzEtMy0xLTEtNDU5MDY_86597605-03c9-4828-ac13-efebb90a7ea0"
      unitRef="shares">14691623</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMzItMS0xLTEtNDU5MDY_920c7810-d3b9-4a1c-b38e-e0e4f535cb90"
      unitRef="shares">14587843</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8xOS9mcmFnOmYzZjgwMGRjNjdkMjRmN2Y5OGZhZjZlMWQzODQ4MjUzL3RhYmxlOmU0NDkxYzRlYWY5NDQyOWVhYWU3ODRmMjVlOGI4NTkyL3RhYmxlcmFuZ2U6ZTQ0OTFjNGVhZjk0NDI5ZWFhZTc4NGYyNWU4Yjg1OTJfMzItMy0xLTEtNDU5MDY_bcca58ed-032f-4718-a6fa-baf785d59798"
      unitRef="shares">14691623</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:ProfitLoss
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMy0xLTEtMS00NTkwNg_abb0169a-acaf-4736-8b2b-c89f2bc77ce3"
      unitRef="usd">172286</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMy0zLTEtMS00NTkwNg_af524ac1-49ad-4592-aa62-7110a0952c1d"
      unitRef="usd">-1402433</us-gaap:ProfitLoss>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfNy0xLTEtMS00NTkwNg_f78909b4-0111-4500-b245-c9524fc80205"
      unitRef="usd">1255675</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfNy0zLTEtMS00NTkwNg_8a6f4e78-2053-4e94-a42b-79bc4cc01dd3"
      unitRef="usd">1653746</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:ShareBasedCompensation
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfOC0xLTEtMS00NTkwNg_595a3f02-b43a-4cd5-b1d6-afa95eeb60bc"
      unitRef="usd">90156</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfOC0zLTEtMS00NTkwNg_441a1ff3-454f-47e6-bd14-c19e08eba497"
      unitRef="usd">159901</us-gaap:ShareBasedCompensation>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfOS0xLTEtMS00NTkwNg_410cdd8d-39d7-450f-8f67-9a614cec978a"
      unitRef="usd">-267637</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfOS0zLTEtMS00NTkwNg_6a7cc043-224f-483b-83ea-2613f32ec6ba"
      unitRef="usd">370464</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <cpix:IncreaseDecreaseInCashSurrenderValueOfLifeInsurancePolicy
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTAtMS0xLTEtNDU5MDY_7329a324-1dde-4919-9d62-f6eefe9381f0"
      unitRef="usd">30799</cpix:IncreaseDecreaseInCashSurrenderValueOfLifeInsurancePolicy>
    <cpix:IncreaseDecreaseInCashSurrenderValueOfLifeInsurancePolicy
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTAtMy0xLTEtNDU5MDY_0e24217e-5c60-4f03-8e31-7104b9f11e79"
      unitRef="usd">-222209</cpix:IncreaseDecreaseInCashSurrenderValueOfLifeInsurancePolicy>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTEtMS0xLTEtNDU5MDY_ca39e02a-2aa1-41fe-9231-cc87c6aee351"
      unitRef="usd">4296</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:AmortizationOfFinancingCosts
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTEtMy0xLTEtNDU5MDY_53da35d6-e1c7-4453-ad40-c66172584403"
      unitRef="usd">2183</us-gaap:AmortizationOfFinancingCosts>
    <us-gaap:InsuredEventGainLoss
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTMtMS0xLTEtNDU5MDY_abf4484c-a74f-4191-973f-bdf2b998a66b"
      unitRef="usd">1847065</us-gaap:InsuredEventGainLoss>
    <us-gaap:InsuredEventGainLoss
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTMtMy0xLTEtNDU5MDY_c22318b1-1ba3-4ed3-89fb-0385681cffda"
      unitRef="usd">0</us-gaap:InsuredEventGainLoss>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTUtMS0xLTEtNDU5MDY_10e3e7aa-6205-4685-8e25-990917d0575e"
      unitRef="usd">-481613</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTUtMy0xLTEtNDU5MDY_34139708-0440-4f2e-adaf-0a732b3d4278"
      unitRef="usd">7758089</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTYtMS0xLTEtNDU5MDY_e8fa922b-562a-478a-8078-2c74f1de708f"
      unitRef="usd">323557</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInInventories
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTYtMy0xLTEtNDU5MDY_175bdcc5-b357-4f9d-a836-1faaac620987"
      unitRef="usd">-2271484</us-gaap:IncreaseDecreaseInInventories>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTctMS0xLTEtNDU5MDY_a101869a-96e2-42e3-918e-b9bb1863fe57"
      unitRef="usd">-682958</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInOtherOperatingAssets
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTctMy0xLTEtNDU5MDY_6cf89de2-f542-4dd2-88ea-9bdc4a1a78fd"
      unitRef="usd">-239862</us-gaap:IncreaseDecreaseInOtherOperatingAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTgtMS0xLTEtNDU5MDY_e1d01de6-0a00-49cc-8aea-7138926931a5"
      unitRef="usd">-1105263</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTgtMy0xLTEtNDU5MDY_44d60043-c80c-44b5-aeeb-afd36a76bbc2"
      unitRef="usd">4461389</us-gaap:IncreaseDecreaseInAccountsPayableAndAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTktMS0xLTEtNDU5MDY_068b2954-53b2-43e5-be93-64f97ccd8f75"
      unitRef="usd">-530872</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMTktMy0xLTEtNDU5MDY_8270cd08-13f7-4257-aad9-3139308ffbc4"
      unitRef="usd">-371214</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMjAtMS0xLTEtNDU5MDY_7ce7ead2-6b61-42c2-93f1-ed3ad831ef39"
      unitRef="usd">-1418209</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMjAtMy0xLTEtNDU5MDY_d9169438-d092-4d17-998d-ab1b099c9ee0"
      unitRef="usd">-150498</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMjQtMS0xLTEtNDU5MDY_4def164f-57cc-43db-ab54-339a3063d6fa"
      unitRef="usd">107260</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMjQtMy0xLTEtNDU5MDY_392e0ee3-1599-4318-95ce-2a347c176c28"
      unitRef="usd">26986</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMjgtMS0xLTEtNDU5MDY_3a0367b7-714e-4f96-a857-9d3f7c82555d"
      unitRef="usd">0</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMjgtMy0xLTEtNDU5MDY_334ed57b-4b0d-45b8-a1c9-99e40fe32429"
      unitRef="usd">13500000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMjktMS0xLTEtNDU5MDY_39fcbf30-a7b4-4857-ba4e-479f2ad15ec7"
      unitRef="usd">67193</us-gaap:PaymentsToAcquireIntangibleAssets>
    <us-gaap:PaymentsToAcquireIntangibleAssets
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMjktMy0xLTEtNDU5MDY_2ad82271-8234-4a75-86ab-3513f42ccd70"
      unitRef="usd">14912</us-gaap:PaymentsToAcquireIntangibleAssets>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzAtMS0xLTEtNDU5MDY_28d3c5d0-7a22-4baf-adce-162d3b91f595"
      unitRef="usd">-174453</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzAtMy0xLTEtNDU5MDY_789147fb-228e-4c03-80f9-a96a92f62c9c"
      unitRef="usd">-13541898</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromRepaymentsOfLinesOfCredit
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzMtMS0xLTEtNDU5MDY_abdd7ff3-ff66-45ed-929b-3e13dfac2f05"
      unitRef="usd">8000000</us-gaap:ProceedsFromRepaymentsOfLinesOfCredit>
    <us-gaap:ProceedsFromRepaymentsOfLinesOfCredit
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzMtMy0xLTEtNDU5MDY_15079344-6451-4b45-a6cd-c36716b24033"
      unitRef="usd">20000000</us-gaap:ProceedsFromRepaymentsOfLinesOfCredit>
    <us-gaap:RepaymentsOfNotesPayable
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzQtMS0xLTEtNDU5MDY_80aaf450-e572-4352-be8f-dbb380f37fc0"
      unitRef="usd">8127714</us-gaap:RepaymentsOfNotesPayable>
    <us-gaap:RepaymentsOfNotesPayable
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzQtMy0xLTEtNDU5MDY_d0613347-dd66-4898-8cbd-b620e177d214"
      unitRef="usd">15000000</us-gaap:RepaymentsOfNotesPayable>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzUtMS0xLTEtNDU5MDY_ee880d01-a149-4a93-af9d-021a4bd04a84"
      unitRef="usd">1464311</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzUtMy0xLTEtNDU5MDY_b08247c5-f758-4789-ae9e-e6b1e22c9e49"
      unitRef="usd">501505</us-gaap:PaymentForContingentConsiderationLiabilityFinancingActivities>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzYtMS0xLTEtNDU5MDY_90be9e48-ae6d-49cd-af33-93ad839113b7"
      unitRef="usd">187117</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzYtMy0xLTEtNDU5MDY_a82dbfc3-00ae-4d14-990a-a001c59d2b3e"
      unitRef="usd">580130</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzctMS0xLTEtNDU5MDY_f03086b0-76b5-46db-9778-af5b434d3f68"
      unitRef="usd">-1779142</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzctMy0xLTEtNDU5MDY_185a5331-0add-427b-925a-c7fd5fc717c8"
      unitRef="usd">3918365</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzgtMS0xLTEtNDU5MDY_b4806f08-d5aa-41ed-9cf6-00f62c02c3da"
      unitRef="usd">-3371804</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzgtMy0xLTEtNDU5MDY_4bab6ff4-95ea-434e-8421-ffb67a766b47"
      unitRef="usd">-9774031</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzktMS0xLTEtNDU5MDY_fb9d3654-ed2c-4c6a-b9f3-50e67d9b176b"
      unitRef="usd">19757970</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i96d025b4c8184275861452edd929096a_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfMzktMy0xLTEtNDU5MDY_cbb5862d-79d8-4df4-9e4d-c3ce560c6d64"
      unitRef="usd">27040816</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfNDAtMS0xLTEtNDU5MDY_568d0fcc-b1cb-4c1c-9157-3b68a5fa413a"
      unitRef="usd">16386166</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i3eac396c436f4fae8b8a3e449c851b53_I20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yMi9mcmFnOjUxZjE3YjQ0MTM5YjRjZjg4YWEwNDdiNjQyZGM3OWFkL3RhYmxlOmE1MGIwYjk4MzE2OTQ5MThiOTcyMGNmNjk1ZGJhOGZmL3RhYmxlcmFuZ2U6YTUwYjBiOTgzMTY5NDkxOGI5NzIwY2Y2OTVkYmE4ZmZfNDAtMy0xLTEtNDU5MDY_f188d91b-7d35-4c41-8bdf-5e2a7c653c95"
      unitRef="usd">17266785</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="id21988457a994b099a86739b6cdbca82_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfMi0xLTEtMS00NTkwNg_24917ba4-d758-41bb-b51a-3b9a62ec48e8"
      unitRef="shares">14742754</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="id21988457a994b099a86739b6cdbca82_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfMi0zLTEtMS00NTkwNg_4ed5e19c-b02f-4e81-bfd3-651468ac88b8"
      unitRef="usd">48452906</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ie1f4ea962c494b878bb4241ac43c41fa_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfMi01LTEtMS00NTkwNg_57decc3c-7c20-4e3e-90af-eb9ee14f3898"
      unitRef="usd">-5638600</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ie8ec9abedb8c43f19d55e4f7e45c8eb7_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfMi03LTEtMS00NTkwNg_d981d84f-0ade-4142-833a-c49b2e6cdd31"
      unitRef="usd">-212328</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i96d025b4c8184275861452edd929096a_I20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfMi05LTEtMS00NTkwNg_d39f1229-8639-473a-a756-df300ce0416d"
      unitRef="usd">42601978</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="i6e57b172666d4a2288b8e5fde755512d_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfMy0xLTEtMS00NTkwNg_463b9ef9-4bb6-4804-b6d7-ed0c43092f8b"
      unitRef="shares">162155</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="i6e57b172666d4a2288b8e5fde755512d_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfMy0zLTEtMS00NTkwNg_2b33cb74-35c4-4096-8883-41c7131e0b35"
      unitRef="usd">159901</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfMy05LTEtMS00NTkwNg_537b05c0-1273-4c91-89e9-32c39646c2d4"
      unitRef="usd">159901</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i6e57b172666d4a2288b8e5fde755512d_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfNC0xLTEtMS00NTkwNg_4f707b8e-735e-4f3d-80c4-f3928d0e1ab4"
      unitRef="shares">174149</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i6e57b172666d4a2288b8e5fde755512d_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfNC0zLTEtMS00NTkwNg_dff7d4fd-059c-4eaf-9146-45b66e1eccdd"
      unitRef="usd">566043</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfNC05LTEtMS00NTkwNg_667c151b-1baf-4082-8ff7-fd0af7023492"
      unitRef="usd">566043</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:ProfitLoss
      contextRef="ie8e03fa7b331473ab77acfc2afa51189_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfNS01LTEtMS00NTkwNg_013d813b-e512-4e2d-bc64-a55de4039299"
      unitRef="usd">-1385253</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="idc23b71a673d4599bd2a0ba1407fe4fb_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfNS03LTEtMS00NTkwNg_25cf2a3c-adf3-4d02-82fc-f5bfe8fe5985"
      unitRef="usd">-17180</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfNS05LTEtMS00NTkwNg_d4f9bf67-1f95-4685-9d10-3693d4775210"
      unitRef="usd">-1402433</us-gaap:ProfitLoss>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="icd26126c59e14812b272518a9b7d3f44_I20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfNi0xLTEtMS00NTkwNg_c576c66f-52bd-4b1c-8292-009031d2c272"
      unitRef="shares">14730760</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="icd26126c59e14812b272518a9b7d3f44_I20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfNi0zLTEtMS00NTkwNg_0054dbc0-a943-4360-9a8e-d8fcf44fe9a9"
      unitRef="usd">48046764</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ic0a37457ed334e9b9592ba8aed5a1663_I20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfNi01LTEtMS00NTkwNg_6344b46c-3bfd-4f5d-86f1-2fba9ad14002"
      unitRef="usd">-7023853</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i616be1943a9849518944ae4c97161c10_I20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfNi03LTEtMS00NTkwNg_796a37e4-ba5a-4be1-a6d9-baf34020f321"
      unitRef="usd">-229508</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i3eac396c436f4fae8b8a3e449c851b53_I20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOjY4MjMzNDJjOGQ1YTQzYzQ4YzBhOWRjZGJlYjI3ODM5L3RhYmxlcmFuZ2U6NjgyMzM0MmM4ZDVhNDNjNDhjMGE5ZGNkYmViMjc4MzlfNi05LTEtMS00NTkwNg_27506859-8138-444b-b166-f38408e680c5"
      unitRef="usd">40793403</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i744c798ff3df40f18e613495868bac21_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfMi0xLTEtMS00NTkwNg_8a399381-78f0-4802-93c0-75ed1656b48f"
      unitRef="shares">14366616</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i744c798ff3df40f18e613495868bac21_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfMi0zLTEtMS00NTkwNg_eb2166bb-0d8f-4bd4-91fb-feec26c0b50f"
      unitRef="usd">47474973</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ide3cf6fd3f4f4b59bea565cd4bff5a6e_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfMi01LTEtMS00NTkwNg_b0f01dae-7127-4c33-9c5b-31f32cf0d982"
      unitRef="usd">-11208841</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i530b250ef27949bba5fb487444051c84_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfMi03LTEtMS00NTkwNg_7961d971-98fb-470c-b9f3-0972f2123ca0"
      unitRef="usd">-292126</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfMi05LTEtMS00NTkwNg_f9abb5fb-4b78-4b4d-ab70-7a2301ce32bb"
      unitRef="usd">35974006</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation
      contextRef="icf9186d88cd34c189ca611958661dbf7_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfMy0xLTEtMS00NTkwNg_73115917-b8b2-465f-97f4-491785b9f522"
      unitRef="shares">150260</us-gaap:StockIssuedDuringPeriodSharesShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="icf9186d88cd34c189ca611958661dbf7_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfMy0zLTEtMS00NTkwNg_2579e97b-ffbd-43cd-8df7-0f318ca2cf62"
      unitRef="usd">90156</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfMy05LTEtMS00NTkwNg_9c44c9c3-4125-4615-ae7e-b666cd21cc83"
      unitRef="usd">90156</us-gaap:StockIssuedDuringPeriodValueShareBasedCompensation>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="icf9186d88cd34c189ca611958661dbf7_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfNC0xLTEtMS00NTkwNg_c303cd8d-d3bc-42f0-9f4d-6d5f64a13897"
      unitRef="shares">86829</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="icf9186d88cd34c189ca611958661dbf7_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfNC0zLTEtMS00NTkwNg_124e231c-811e-48f0-bd08-06b27f62c1e7"
      unitRef="usd">187961</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfNC05LTEtMS00NTkwNg_2ec0ca12-46f3-4798-b567-89b385e2eb54"
      unitRef="usd">187961</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:ProfitLoss
      contextRef="i253227b0f5924873a6f1b2ff8dcc1d6f_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfNS01LTEtMS00NTkwNg_42659e2a-fa5f-41b6-8007-9730ef480435"
      unitRef="usd">192184</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="i940da1c588fe4d13ad77dfd49e66aad3_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfNS03LTEtMS00NTkwNg_d00eb749-94d0-4e59-b059-181068b4a403"
      unitRef="usd">-19898</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfNS05LTEtMS00NTkwNg_835ce9d5-1287-4c38-8459-2b743455702b"
      unitRef="usd">172286</us-gaap:ProfitLoss>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ieaa823ff0ab54452af8bbfadfb40cf88_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfNi0xLTEtMS00NTkwNg_a2713dab-0984-4de7-a9f1-86ad394a4203"
      unitRef="shares">14430047</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ieaa823ff0ab54452af8bbfadfb40cf88_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfNi0zLTEtMS00NTkwNg_4b600f22-b6bc-4105-b535-cb9706f92c48"
      unitRef="usd">47377168</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="ie061a82abf3d48ddab2142be4e8bf214_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfNi01LTEtMS00NTkwNg_dfbebf09-f6fb-4d50-af75-b442b637a02c"
      unitRef="usd">-11016657</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i44a1615e590c493a868e0826fbbf8abd_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfNi03LTEtMS00NTkwNg_32945ab8-fc09-4bf5-9f76-6ed1854c83cf"
      unitRef="usd">-312024</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8yNS9mcmFnOjQ5M2I5MGIzNjI1NzRlYzViNDQxOGNlYjY1NmI5MDA5L3RhYmxlOmNlZWEzZjhlOWFhYjQ5NjNiYWMzOTFmYzIzN2FiMGVhL3RhYmxlcmFuZ2U6Y2VlYTNmOGU5YWFiNDk2M2JhYzM5MWZjMjM3YWIwZWFfNi05LTEtMS00NTkwNg_b056946f-e3f2-4e6f-b7b8-a0962e9aaf7b"
      unitRef="usd">36048487</us-gaap:StockholdersEquityIncludingPortionAttributableToNoncontrollingInterest>
    <us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zMS9mcmFnOmVkZGY1NGVkYzVhYTRmZWE5ODlkZWViMmNkOTE5MGQ3L3RleHRyZWdpb246ZWRkZjU0ZWRjNWFhNGZlYTk4OWRlZWIyY2Q5MTkwZDdfOTUyOQ_b4c54bbf-b01b-436f-acb4-5316df3eb60f">ORGANIZATION AND BASIS OF PRESENTATION&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;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 pharmaceutical 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 served 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, oncology and field sales forces in the United States.  We are continuing to build a network of international partners to register and provide our medicines to patients in their countries.&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;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 control and manufacturing professionals. The Company works closely with its hospital, field and oncology sales teams and 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"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In the opinion of management, the accompanying unaudited condensed consolidated financial statements of the Company have been prepared on a basis consistent with the December 31, 2022, audited consolidated financial statements and include all adjustments, consisting of only normal recurring adjustments, necessary to fairly present the information set forth herein. All significant intercompany accounts and transactions have been eliminated in consolidation. The unaudited condensed consolidated financial statements have been prepared in accordance with the regulations of the Securities and Exchange Commission (the &#x201c;SEC&#x201d;), and certain information and disclosures have been condensed or omitted as permitted by the SEC for interim period presentation. These unaudited condensed consolidated financial statements should be read in conjunction with the audited consolidated financial statements and notes included in our Annual Report on Form 10-K for the year ended December 31, 2022 (the &#x201c;2022 Annual Report on Form 10-K&#x201d;). The results of operations for the three months ended March 31, 2023, are not necessarily indicative of the results to be expected for the entire fiscal year or any future period.&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-style:italic;font-weight:700;line-height:120%"&gt;Recent Accounting Guidance&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-style:italic;font-weight:400;line-height:120%"&gt;Recent Accounting Pronouncements&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;In June 2016, the Financial Accounting Standards Board ("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 are required to use a new forward-looking &#x201c;expected loss&#x201d; model that generally result in the earlier recognition of allowances for losses. For available-for-sale debt securities with unrealized losses, companies measure credit losses in a manner similar to what they do today, except that the losses are recognized as allowances rather than as reductions in the amortized cost of the securities. Companies have to disclose additional information, including information they use to track credit quality by year of origination for most financing receivables. Companies apply the ASU&#x2019;s provisions as a cumulative-effect adjustment, if any, to retained earnings (deficit) 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-top:8pt;text-align:justify"&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 elect 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.  Please refer to &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;Trade and Notes Receivables Policy&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;/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-style:italic;font-weight:700;line-height:120%"&gt;Accounting Policies:&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-style:italic;font-weight:400;line-height:120%;text-decoration:underline"&gt;Use of Estimates&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;The preparation of the condensed 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 liabilities associated with business combinations.&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-style:italic;font-weight:400;line-height:120%;text-decoration:underline"&gt;Operating Segments&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;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, has concluded 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 and total revenues are primarily attributable to U.S.&#160;customers. &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-style:italic;font-weight:400;line-height:120%;text-decoration:underline"&gt;Trade and Note Receivables Policy&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;Management performed a scoping exercise to ensure completeness over the application of Current Expected Credit Losses (CECL) across the various financial instruments including trade and note receivables. CECL is applicable to all financial assets measured at amortized cost. The authoritative guidance requires that all financial instruments should be evaluated, including cash equivalents such as 3-month T-Bills, even if the expected loss is determined to be zero, or materially zero.  All bank balances are maintained in cash or money market funds.  Therefore for the Company, this principally relates to trade receivables and two note receivables. CECL also requires the measurement of expected credit losses on a collective (pool) basis when similar risk characteristics exist. This may include, either individually or in combination, some of the following characteristics (326-20-55-5):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;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%;padding-left:11.07pt"&gt;Internal or external credit score/rating&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;b.&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:10.5pt"&gt;Risk ratings or classification&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;c.&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:11.07pt"&gt;Financial asset type&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;d.&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:10.5pt"&gt;Size&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;e.&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:11.07pt"&gt;Effective interest rate&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;f.&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:12.17pt"&gt;Term&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;g.&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:10.5pt"&gt;Geographical location&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;h.&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:10.5pt"&gt;Historical or expected credit loss patterns&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;i.&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:12.73pt"&gt;Reasonable and supportable forecast periods&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;The standard requires entities to pool financial assets but allows them to choose which risk characteristics to use. Under the requirements of the guidance, the Company would need to reassess at the end of each reporting period whether the pool of assets continue to display similar risk characteristics. &lt;/span&gt;&lt;/div&gt;With twenty years of experience, Cumberland has experienced virtually no write downs of receivables as most of our receivables are due from large successful pharmaceutical, healthcare or government customers, consistently making payments on account. Although the payment behaviors of all of our customers are consistently reliable, for the sake of transparency, we have separated our customer base into seven separate pools. The Company performs a monthly analysis of aged accounts receivable to determine how much, if any, of the accounts receivable balance should be reserved as potential bad debt. The Company reviews all balances over 90 days past due for a possible reserve and considers any specific factors or information for balances aged under 90 days if there are indicators that the balance should be reserved, such as other aged balances with the customer or bankruptcy as well as any economic issues with a customer industry or region.</us-gaap:OrganizationConsolidationAndPresentationOfFinancialStatementsDisclosureTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zMS9mcmFnOmVkZGY1NGVkYzVhYTRmZWE5ODlkZWViMmNkOTE5MGQ3L3RleHRyZWdpb246ZWRkZjU0ZWRjNWFhNGZlYTk4OWRlZWIyY2Q5MTkwZDdfOTUzMQ_762ee2f5-ff64-4245-b64d-7987cefd6c30">&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-style:italic;font-weight:700;line-height:120%"&gt;Recent Accounting Guidance&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-style:italic;font-weight:400;line-height:120%"&gt;Recent Accounting Pronouncements&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;In June 2016, the Financial Accounting Standards Board ("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 are required to use a new forward-looking &#x201c;expected loss&#x201d; model that generally result in the earlier recognition of allowances for losses. For available-for-sale debt securities with unrealized losses, companies measure credit losses in a manner similar to what they do today, except that the losses are recognized as allowances rather than as reductions in the amortized cost of the securities. Companies have to disclose additional information, including information they use to track credit quality by year of origination for most financing receivables. Companies apply the ASU&#x2019;s provisions as a cumulative-effect adjustment, if any, to retained earnings (deficit) 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-top:8pt;text-align:justify"&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 elect 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.  Please refer to &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;Trade and Notes Receivables Policy&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;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:UseOfEstimates
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zMS9mcmFnOmVkZGY1NGVkYzVhYTRmZWE5ODlkZWViMmNkOTE5MGQ3L3RleHRyZWdpb246ZWRkZjU0ZWRjNWFhNGZlYTk4OWRlZWIyY2Q5MTkwZDdfOTUyNg_2842a09c-46ee-4e41-a1d6-8b75b770e908">&lt;div style="margin-top:8pt"&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%;text-decoration:underline"&gt;Use of Estimates&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;The preparation of the condensed 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 liabilities associated with business combinations.&lt;/span&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
    <us-gaap:SegmentReportingPolicyPolicyTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zMS9mcmFnOmVkZGY1NGVkYzVhYTRmZWE5ODlkZWViMmNkOTE5MGQ3L3RleHRyZWdpb246ZWRkZjU0ZWRjNWFhNGZlYTk4OWRlZWIyY2Q5MTkwZDdfOTUyOA_49237524-ac7e-4dd0-a2b4-ea0c58ddc7bc">Operating SegmentsThe 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, has concluded 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 and total revenues are primarily attributable to U.S.&#160;customers.</us-gaap:SegmentReportingPolicyPolicyTextBlock>
    <us-gaap:NumberOfOperatingSegments
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zMS9mcmFnOmVkZGY1NGVkYzVhYTRmZWE5ODlkZWViMmNkOTE5MGQ3L3RleHRyZWdpb246ZWRkZjU0ZWRjNWFhNGZlYTk4OWRlZWIyY2Q5MTkwZDdfODcxOQ_20b74a07-f26e-4d09-bbd5-602d2983259d"
      unitRef="segment">1</us-gaap:NumberOfOperatingSegments>
    <cpix:TradeAndNoteReceivablesPolicyTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zMS9mcmFnOmVkZGY1NGVkYzVhYTRmZWE5ODlkZWViMmNkOTE5MGQ3L3RleHRyZWdpb246ZWRkZjU0ZWRjNWFhNGZlYTk4OWRlZWIyY2Q5MTkwZDdfMTA5OTUxMTY1MDgzOQ_b4af2038-4fb2-4af3-8d3d-6ed025b4d588">&lt;div style="margin-top:8pt"&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%;text-decoration:underline"&gt;Trade and Note Receivables Policy&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;Management performed a scoping exercise to ensure completeness over the application of Current Expected Credit Losses (CECL) across the various financial instruments including trade and note receivables. CECL is applicable to all financial assets measured at amortized cost. The authoritative guidance requires that all financial instruments should be evaluated, including cash equivalents such as 3-month T-Bills, even if the expected loss is determined to be zero, or materially zero.  All bank balances are maintained in cash or money market funds.  Therefore for the Company, this principally relates to trade receivables and two note receivables. CECL also requires the measurement of expected credit losses on a collective (pool) basis when similar risk characteristics exist. This may include, either individually or in combination, some of the following characteristics (326-20-55-5):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;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%;padding-left:11.07pt"&gt;Internal or external credit score/rating&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;b.&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:10.5pt"&gt;Risk ratings or classification&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;c.&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:11.07pt"&gt;Financial asset type&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;d.&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:10.5pt"&gt;Size&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;e.&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:11.07pt"&gt;Effective interest rate&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;f.&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:12.17pt"&gt;Term&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;g.&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:10.5pt"&gt;Geographical location&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;h.&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:10.5pt"&gt;Historical or expected credit loss patterns&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;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;i.&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:12.73pt"&gt;Reasonable and supportable forecast periods&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;The standard requires entities to pool financial assets but allows them to choose which risk characteristics to use. Under the requirements of the guidance, the Company would need to reassess at the end of each reporting period whether the pool of assets continue to display similar risk characteristics. &lt;/span&gt;&lt;/div&gt;With twenty years of experience, Cumberland has experienced virtually no write downs of receivables as most of our receivables are due from large successful pharmaceutical, healthcare or government customers, consistently making payments on account. Although the payment behaviors of all of our customers are consistently reliable, for the sake of transparency, we have separated our customer base into seven separate pools. The Company performs a monthly analysis of aged accounts receivable to determine how much, if any, of the accounts receivable balance should be reserved as potential bad debt. The Company reviews all balances over 90 days past due for a possible reserve and considers any specific factors or information for balances aged under 90 days if there are indicators that the balance should be reserved, such as other aged balances with the customer or bankruptcy as well as any economic issues with a customer industry or region.</cpix:TradeAndNoteReceivablesPolicyTextBlock>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RleHRyZWdpb246NmZhNzk5MjNkODVhNGM0MmEyMmMxZWFlNWJkOTdmZjNfNDI2_0f74ff20-e483-4260-af92-e496d7d9a180">EARNINGS (LOSS) PER SHARE&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;The following table reconciles the numerator and denominator used to calculate basic and diluted earnings (loss) per share for the three months ended March 31, 2023 and 2022:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:8pt;text-align:justify"&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:58.987%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.344%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.823%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.346%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&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="padding:0 1pt"/&gt;&lt;td colspan="9" 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;Three months ended March 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;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;/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;border-top:1pt solid #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:1pt solid #000;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:400;line-height:100%"&gt;Net income (loss)&lt;/span&gt;&lt;/td&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;172,286&#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;(1,402,433)&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 style="height:15pt"&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 #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;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;Net loss at subsidiary attributable to noncontrolling interest&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;19,898&#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;17,180&#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;Net income (loss) attributable to common shareholders&lt;/span&gt;&lt;/td&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;192,184&#160;&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;(1,385,253)&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;text-align:left;vertical-align: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;border-top:1pt solid #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:1pt solid #000;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:400;line-height:100%"&gt;Weighted-average shares outstanding &#x2013; basic&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;14,359,322&#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,691,623&#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;Dilutive effect of other securities&lt;/span&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:100%"&gt;228,521&#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;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:top"&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:top"/&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;Weighted-average shares outstanding &#x2013; diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-bottom:3pt double #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;14,587,843&#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 colspan="2" style="border-bottom:3pt double #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;14,691,623&#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;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.122%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.929%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.516%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.537%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.518%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&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;/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;/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;/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;/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;/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;/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;/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;/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;/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;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;/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;/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;/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;/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;/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;/tr&gt;&lt;/table&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:58.987%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.344%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.823%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.346%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&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;/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;/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;/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;/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;/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;/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;/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;/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;/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;/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;/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;/tr&gt;&lt;/table&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 March 31, 2023 and 2022, restricted stock awards and options to purchase 331,338 and 131,225 shares of common stock, respectively, were outstanding but were not included in the computation of diluted earnings per share because the effect would be antidilutive.&lt;/span&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RleHRyZWdpb246NmZhNzk5MjNkODVhNGM0MmEyMmMxZWFlNWJkOTdmZjNfNDI5_75bd5f1f-887d-4e40-8ec0-6840458bed71">The following table reconciles the numerator and denominator used to calculate basic and diluted earnings (loss) per share for the three months ended March 31, 2023 and 2022:&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:58.987%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.344%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.823%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.346%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&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="padding:0 1pt"/&gt;&lt;td colspan="9" 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;Three months ended March 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;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;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;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;/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;border-top:1pt solid #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:1pt solid #000;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:400;line-height:100%"&gt;Net income (loss)&lt;/span&gt;&lt;/td&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;172,286&#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;(1,402,433)&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 style="height:15pt"&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 #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;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;Net loss at subsidiary attributable to noncontrolling interest&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;19,898&#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;17,180&#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;Net income (loss) attributable to common shareholders&lt;/span&gt;&lt;/td&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;192,184&#160;&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;(1,385,253)&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;text-align:left;vertical-align: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;border-top:1pt solid #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:1pt solid #000;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:400;line-height:100%"&gt;Weighted-average shares outstanding &#x2013; basic&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;14,359,322&#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,691,623&#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;Dilutive effect of other securities&lt;/span&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:100%"&gt;228,521&#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;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:top"&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:top"/&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;Weighted-average shares outstanding &#x2013; diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-bottom:3pt double #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;14,587,843&#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 colspan="2" style="border-bottom:3pt double #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;14,691,623&#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:ScheduleOfEarningsPerShareBasicAndDilutedTableTextBlock>
    <us-gaap:ProfitLoss
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RhYmxlOjM5NmUzNjM2NTQwZjQ5ZDFiNjRjNTZkYTM0ZTc5ZmZkL3RhYmxlcmFuZ2U6Mzk2ZTM2MzY1NDBmNDlkMWI2NGM1NmRhMzRlNzlmZmRfNC0xLTEtMS00NTkwNg_dac7a762-07af-4eef-ad3c-2e4b2904da5d"
      unitRef="usd">172286</us-gaap:ProfitLoss>
    <us-gaap:ProfitLoss
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RhYmxlOjM5NmUzNjM2NTQwZjQ5ZDFiNjRjNTZkYTM0ZTc5ZmZkL3RhYmxlcmFuZ2U6Mzk2ZTM2MzY1NDBmNDlkMWI2NGM1NmRhMzRlNzlmZmRfNC0zLTEtMS00NTkwNg_42df67d0-8226-42f5-8dd2-a81458216df1"
      unitRef="usd">-1402433</us-gaap:ProfitLoss>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RhYmxlOjM5NmUzNjM2NTQwZjQ5ZDFiNjRjNTZkYTM0ZTc5ZmZkL3RhYmxlcmFuZ2U6Mzk2ZTM2MzY1NDBmNDlkMWI2NGM1NmRhMzRlNzlmZmRfNy0xLTEtMS00NTkwNg_6c485852-ab79-4700-aaf5-61a01f38492c"
      unitRef="usd">-19898</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLossAttributableToNoncontrollingInterest
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RhYmxlOjM5NmUzNjM2NTQwZjQ5ZDFiNjRjNTZkYTM0ZTc5ZmZkL3RhYmxlcmFuZ2U6Mzk2ZTM2MzY1NDBmNDlkMWI2NGM1NmRhMzRlNzlmZmRfNy0zLTEtMS00NTkwNg_7fbe3dd3-3ebd-4632-afb8-bf4977ff3bbd"
      unitRef="usd">-17180</us-gaap:NetIncomeLossAttributableToNoncontrollingInterest>
    <us-gaap:NetIncomeLoss
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RhYmxlOjM5NmUzNjM2NTQwZjQ5ZDFiNjRjNTZkYTM0ZTc5ZmZkL3RhYmxlcmFuZ2U6Mzk2ZTM2MzY1NDBmNDlkMWI2NGM1NmRhMzRlNzlmZmRfOC0xLTEtMS00NTkwNg_bbc16342-8d6a-4237-a6cc-6fdee92e670e"
      unitRef="usd">192184</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RhYmxlOjM5NmUzNjM2NTQwZjQ5ZDFiNjRjNTZkYTM0ZTc5ZmZkL3RhYmxlcmFuZ2U6Mzk2ZTM2MzY1NDBmNDlkMWI2NGM1NmRhMzRlNzlmZmRfOC0zLTEtMS00NTkwNg_cb3570f5-137c-4426-bef8-0b65078e1d72"
      unitRef="usd">-1385253</us-gaap:NetIncomeLoss>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RhYmxlOjM5NmUzNjM2NTQwZjQ5ZDFiNjRjNTZkYTM0ZTc5ZmZkL3RhYmxlcmFuZ2U6Mzk2ZTM2MzY1NDBmNDlkMWI2NGM1NmRhMzRlNzlmZmRfMTAtMS0xLTEtNDU5MDY_b1d693f6-7c89-4180-b374-831fd2c8dec9"
      unitRef="shares">14359322</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RhYmxlOjM5NmUzNjM2NTQwZjQ5ZDFiNjRjNTZkYTM0ZTc5ZmZkL3RhYmxlcmFuZ2U6Mzk2ZTM2MzY1NDBmNDlkMWI2NGM1NmRhMzRlNzlmZmRfMTAtMy0xLTEtNDU5MDY_86597605-03c9-4828-ac13-efebb90a7ea0"
      unitRef="shares">14691623</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RhYmxlOjM5NmUzNjM2NTQwZjQ5ZDFiNjRjNTZkYTM0ZTc5ZmZkL3RhYmxlcmFuZ2U6Mzk2ZTM2MzY1NDBmNDlkMWI2NGM1NmRhMzRlNzlmZmRfMTEtMS0xLTEtNDU5MDY_82d32efb-2022-43ca-92f8-91dcdb8497e1"
      unitRef="shares">228521</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RhYmxlOjM5NmUzNjM2NTQwZjQ5ZDFiNjRjNTZkYTM0ZTc5ZmZkL3RhYmxlcmFuZ2U6Mzk2ZTM2MzY1NDBmNDlkMWI2NGM1NmRhMzRlNzlmZmRfMTEtMy0xLTEtNDU5MDY_95ab9514-8366-459c-91b7-2073428e7c2e"
      unitRef="shares">0</us-gaap:WeightedAverageNumberDilutedSharesOutstandingAdjustment>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RhYmxlOjM5NmUzNjM2NTQwZjQ5ZDFiNjRjNTZkYTM0ZTc5ZmZkL3RhYmxlcmFuZ2U6Mzk2ZTM2MzY1NDBmNDlkMWI2NGM1NmRhMzRlNzlmZmRfMTItMS0xLTEtNDU5MDY_920c7810-d3b9-4a1c-b38e-e0e4f535cb90"
      unitRef="shares">14587843</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RhYmxlOjM5NmUzNjM2NTQwZjQ5ZDFiNjRjNTZkYTM0ZTc5ZmZkL3RhYmxlcmFuZ2U6Mzk2ZTM2MzY1NDBmNDlkMWI2NGM1NmRhMzRlNzlmZmRfMTItMy0xLTEtNDU5MDY_bcca58ed-032f-4718-a6fa-baf785d59798"
      unitRef="shares">14691623</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RleHRyZWdpb246NmZhNzk5MjNkODVhNGM0MmEyMmMxZWFlNWJkOTdmZjNfMjQ5_2f38b626-ee48-4503-843f-8bd285d6eccf"
      unitRef="shares">331338</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNC9mcmFnOjZmYTc5OTIzZDg1YTRjNDJhMjJjMWVhZTViZDk3ZmYzL3RleHRyZWdpb246NmZhNzk5MjNkODVhNGM0MmEyMmMxZWFlNWJkOTdmZjNfMjU2_85238779-b7e2-4a9c-853b-930cd68d4b7e"
      unitRef="shares">131225</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RleHRyZWdpb246NTM4MGQzMjg5YjkwNDk3YTk1YmIwNDU5MWU2M2MxNTdfMzI2MQ_af8f61f2-cf59-4cbe-9627-04c39e298ab8">REVENUES&lt;div style="margin-bottom:6pt;margin-top:6pt"&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;Product Revenues&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;The Company accounts for revenues from contracts with customers under ASC 606, which became effective January 1, 2018. &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 Company&#x2019;s net revenues consisted of the following for the three months ended March 31, 2023 and 2022:&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:69.883%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:56.849%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.192%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.264%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.195%"/&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;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="9" 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;Three months ended March 31,&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:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;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;2023&lt;/span&gt;&lt;/td&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: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="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;text-align:left;vertical-align: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="background-color:#cceeff;border-top:1pt solid #000000;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:1pt solid #000000;padding:0 1pt"/&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 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;Kristalose&lt;/span&gt;&lt;/td&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;4,315,128&#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;3,945,097&#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;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 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;Sancuso&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,886,793&#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;3,397,209&#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;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 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;Vibativ&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,848,187&#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,501,434&#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;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 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;Caldolor&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;935,043&#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;959,634&#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;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 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;Acetadote&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;169,856&#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;111,090&#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;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 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;Vaprisol&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;16,008&#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;(117,000)&lt;/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;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 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;Omeclamox-Pak&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,518)&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;22,737&#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;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 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;RediTrex&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;(141,045)&lt;/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;59,226&#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;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 revenue&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;197,186&#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;295,618&#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;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;Total net revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;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 #000000;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,224,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;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 #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;11,175,045&#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;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"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Omeclamox-Pak net revenue for the first quarter of 2023 and 2022 was the result of Cumberland currently being out of commercial inventory of this product.  The packager for our Omeclamox-Pak product encountered financial difficulties due to the impact of COVID-19.  They are under new management and are in the process of a reorganization. Discussions with the packager are ongoing.  In the first quarter of 2023, the amounts noted were normal adjustments by channel partners.  &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;With regard to Vaprisol, we are in the process of transitioning to a new manufacturer, who was issued an FDA Form 483 in the second quarter of 2022.  Once these 483 related issues are satisfactorily resolved by the manufacturing plant, we will then resubmit our application to the FDA for approval.  Net revenue was positively impacted by product return adjustments.&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-style:italic;font-weight:400;line-height:120%"&gt;Other Revenues&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;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 is 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;Other revenues also include funding from federal grant programs including those secured from the FDA and from those secured by Cumberland Emerging Technologies Inc. ("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 federal grant  programs totaled approximately $0.1&#160;million and $0.04 million for the three months ended March 31, 2023 and 2022, respectively</us-gaap:SegmentReportingDisclosureTextBlock>
    <us-gaap:ScheduleOfEntityWideInformationRevenueFromExternalCustomersByProductsAndServicesTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RleHRyZWdpb246NTM4MGQzMjg5YjkwNDk3YTk1YmIwNDU5MWU2M2MxNTdfMzI2MA_f4e6b726-c837-48e7-a54e-feaf0cd564f9">&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&#x2019;s net revenues consisted of the following for the three months ended March 31, 2023 and 2022:&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:69.883%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:56.849%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.192%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.264%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:19.195%"/&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;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="9" 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;Three months ended March 31,&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:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;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;2023&lt;/span&gt;&lt;/td&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: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="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;text-align:left;vertical-align: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="background-color:#cceeff;border-top:1pt solid #000000;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:1pt solid #000000;padding:0 1pt"/&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 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;Kristalose&lt;/span&gt;&lt;/td&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;4,315,128&#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;3,945,097&#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;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 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;Sancuso&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,886,793&#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;3,397,209&#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;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 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;Vibativ&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,848,187&#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,501,434&#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;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 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;Caldolor&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;935,043&#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;959,634&#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;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 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;Acetadote&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;169,856&#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;111,090&#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;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 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;Vaprisol&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;16,008&#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;(117,000)&lt;/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;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 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;Omeclamox-Pak&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,518)&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;22,737&#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;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 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;RediTrex&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;(141,045)&lt;/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;59,226&#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;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 revenue&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;197,186&#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;295,618&#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;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;Total net revenues&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;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 #000000;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,224,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;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 #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;11,175,045&#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;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="ic5ec9fd4fee24747aa5425a2da34ca15_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfMy0xLTEtMS00NTkwNg_a4b8f7ab-af32-440c-96bd-2389738a0fc0"
      unitRef="usd">4315128</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia1390383e91148dca5ab8bb6aec95eaa_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfMy0zLTEtMS00NTkwNg_09b53694-a33e-4b5a-ac98-4b8443137084"
      unitRef="usd">3945097</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ifaee959e87604f9b8afd1f3f35e7279f_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfNC0xLTEtMS00NTkwNg_ea3b6f32-a390-4970-b577-a3749644a280"
      unitRef="usd">1886793</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i0b5edc8419e647ee824fdb81e180ad31_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfNC0zLTEtMS00NTkwNg_e248cb8a-1752-4026-9f49-4a0d2f4e669e"
      unitRef="usd">3397209</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ica71cbb512a74596b40cd7a2f3f45ac6_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfNS0xLTEtMS00NTkwNg_989ee7e1-67de-4a13-9ca8-9ffc8e8acd26"
      unitRef="usd">1848187</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ie245a45f71a44cf49e04fb9e7a1b64c0_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfNS0zLTEtMS00NTkwNg_111983b1-9a45-4075-a3aa-094a9bc55b29"
      unitRef="usd">2501434</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6f492dd29e9e496ab0c32db9bde2fad5_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfNi0xLTEtMS00NTkwNg_ce9da458-d5dc-4ddc-ba62-f990a78452e8"
      unitRef="usd">935043</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i4fa8cd8c9bc645fd917139e4733faee9_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfNi0zLTEtMS00NTkwNg_c3a6d18a-22fc-4436-b89f-933732ad4757"
      unitRef="usd">959634</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iff66fc78303f42288cd05a0391f52e8d_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfNy0xLTEtMS00OTIzMA_3ad15e86-50fa-4ab8-b228-7e9956ee22bf"
      unitRef="usd">169856</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i8b303705e50348069ce4d7d41176c589_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfNy0zLTEtMS00OTIzNA_cb2a7742-70e9-4fc9-a0f7-529367fd21de"
      unitRef="usd">111090</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if7b3c21a06344e6daf54cef8c4bea836_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfNy0xLTEtMS00NTkwNg_f8cdd0fa-d5a2-45e6-9672-433e07534db6"
      unitRef="usd">16008</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i34fd69d4d0114a3891b1fd1b5cd85e8f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfNy0zLTEtMS00NTkwNg_a0d263a8-449d-4a4c-99c7-96002783a646"
      unitRef="usd">-117000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if792fa0d44004e868ffe0fb9dcc009a6_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfOS0xLTEtMS00NTkwNg_8b47b794-4725-4ed6-ba6f-476ff384ec82"
      unitRef="usd">-2518</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i877bdcd11bf84e83a844f6f7f0340018_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfOS0zLTEtMS00NTkwNg_29015bfa-743d-489d-810d-7a410baff4e7"
      unitRef="usd">22737</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if834c35329184e12bfc00925eb9c78b3_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfMTAtMS0xLTEtNDU5MDY_1d37848c-fd4b-4a2c-92fc-5a43dc168ffb"
      unitRef="usd">-141045</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i89705d4ba770443aa81891ed098d2e82_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfMTAtMy0xLTEtNDU5MDY_5467682e-e2d2-4e90-ab12-6e8adcf8c8af"
      unitRef="usd">59226</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="iefe426f8f9cf4fadacc86244be87455b_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfMTEtMS0xLTEtNDU5MDY_f11e78f0-19fc-40a7-980f-f4bf5c006f27"
      unitRef="usd">197186</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i56a471ba8e2a4536a4fee60860c84a40_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfMTEtMy0xLTEtNDU5MDY_5c1f36f2-db73-457a-b8c3-0f07c1e02c82"
      unitRef="usd">295618</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfMTItMS0xLTEtNDU5MDY_764ba6c2-496a-405f-8e90-86b79f65fb98"
      unitRef="usd">9224638</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RhYmxlOmEzYjE2ZThjYjcwMzQxNDI4NjkxMDM1ODQxMzQ2ZDkyL3RhYmxlcmFuZ2U6YTNiMTZlOGNiNzAzNDE0Mjg2OTEwMzU4NDEzNDZkOTJfMTItMy0xLTEtNDU5MDY_c8b6f868-27f2-43d0-82a6-856657219fff"
      unitRef="usd">11175045</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if42572ad56a64b2a829bd4df6389654b_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RleHRyZWdpb246NTM4MGQzMjg5YjkwNDk3YTk1YmIwNDU5MWU2M2MxNTdfMzE3Mw_a9190535-be4b-4279-9a53-7c708756c3dd"
      unitRef="usd">100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2233569d7a744fb9be2b55c9f18e5f65_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV8zNy9mcmFnOjUzODBkMzI4OWI5MDQ5N2E5NWJiMDQ1OTFlNjNjMTU3L3RleHRyZWdpb246NTM4MGQzMjg5YjkwNDk3YTk1YmIwNDU5MWU2M2MxNTdfMzE4MA_bbe0916b-6eb8-474f-91a7-e83d55c613bd"
      unitRef="usd">40000.00</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:InventoryDisclosureTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RleHRyZWdpb246Zjk2ZDdkYmQ2ZGQxNDRmODk1M2UzOWYzYTZmNDkzZWFfMjMxMQ_8486ce76-4110-438e-9b5e-2b9a245d92c9">INVENTORIES&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;The Company works closely with third parties to manufacture and package finished goods for sale.&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;Based on the arrangements with the manufacturer or packager, the Company will either take title to the finished goods at the time of shipment or at the time of arrival at the Company&#x2019;s warehouses.&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 then holds such goods in inventory until distribution and sale. These finished goods 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: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;The Company continually evaluates inventory for potential losses due to excess, obsolete or slow-moving goods by comparing sales history and projections to the inventory on hand. When evidence indicates that the carrying value may not be recoverable, a charge is taken to reduce the inventory to its current net realizable value.  At March 31, 2023, there were no cumulative obsolescence and discontinuance losses necessary. At December 31, 2022, the Company had recognized and maintained cumulative net realizable value charges for potential obsolescence and discontinuance losses of approximately $0.5 million.  &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;The Company is responsible for the purchase of the active pharmaceutical ingredient (&#x201c;API&#x201d;) for Kristalose and maintains the inventory at third-party packagers. As that 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 at March 31, 2023 and December 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;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Consigned inventory represents Authorized Generic inventory stored with our partner until shipment.   &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;As part of the Vibativ acquisition, the Company acquired API and work in process inventories of $15.6 million that were all initially classified as non-current inventories at the date of acquisition.  At March 31, 2023 and December 31, 2022, total non-current inventory, including Vibativ and our clinical trial drug ifetroban, was $7.5 million for each period. The Company had Vibativ finished goods of $0.9 million included in non-current inventory at March 31, 2023, and no non-current inventory at December 31, 2022.  The Company also had $0.3 million in non-current inventory for API related to its ifetroban clinical initiatives at March 31, 2023 and December 31, 2022, and $0.2 million and $0.1 million of finished goods, respectively.&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;At March 31, 2023 and December 31, 2022, the Company's net inventories consisted of the following:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:57.637%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.121%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.430%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.681%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.431%"/&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;March 31, 2023&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;/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&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,548,636&#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,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;/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;179,786&#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;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;/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&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,985,883&#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,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;/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,714,305&#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,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;/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,534,303)&lt;/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,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;/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;10,180,002&#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;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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:InventoryDisclosureTextBlock>
    <us-gaap:InventoryValuationReserves
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RleHRyZWdpb246Zjk2ZDdkYmQ2ZGQxNDRmODk1M2UzOWYzYTZmNDkzZWFfMTA5OTUxMTYzMTE4Ng_9716c19b-ac7e-46e1-abdf-b3f2658da2b5"
      unitRef="usd">0</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryValuationReserves
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RleHRyZWdpb246Zjk2ZDdkYmQ2ZGQxNDRmODk1M2UzOWYzYTZmNDkzZWFfMTA0Ng_b8ba1925-79d6-4a59-a3e7-3817ee2e5327"
      unitRef="usd">500000</us-gaap:InventoryValuationReserves>
    <us-gaap:InventoryNoncurrent
      contextRef="i7c76ad6b0d9d43bea791e5d7ff63409c_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RleHRyZWdpb246Zjk2ZDdkYmQ2ZGQxNDRmODk1M2UzOWYzYTZmNDkzZWFfMTYzOQ_5bbde86d-a4d3-4191-880a-fbd45c0aa713"
      unitRef="usd">15600000</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryNoncurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RleHRyZWdpb246Zjk2ZDdkYmQ2ZGQxNDRmODk1M2UzOWYzYTZmNDkzZWFfMTk0Mg_1adc7a15-5645-48e6-8671-161044dd6713"
      unitRef="usd">7500000</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryNoncurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RleHRyZWdpb246Zjk2ZDdkYmQ2ZGQxNDRmODk1M2UzOWYzYTZmNDkzZWFfMTk0Mg_414a73c9-9eb8-49a4-93d2-fc627c350be8"
      unitRef="usd">7500000</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="if921eb31fa6f45b39876cdd2bde81d95_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RleHRyZWdpb246Zjk2ZDdkYmQ2ZGQxNDRmODk1M2UzOWYzYTZmNDkzZWFfNTQ5NzU1ODE2NDc3_0dfeff50-30ce-4caa-9151-f488b35a3864"
      unitRef="usd">900000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="i7c76ad6b0d9d43bea791e5d7ff63409c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RleHRyZWdpb246Zjk2ZDdkYmQ2ZGQxNDRmODk1M2UzOWYzYTZmNDkzZWFfMTY0OTI2NzQ0NTQxMg_280aa7cc-c282-4e3f-a3cb-cefe120c764d"
      unitRef="usd">0</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryNoncurrent
      contextRef="i0b68b7b01134465aa81635021c31c2ee_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RleHRyZWdpb246Zjk2ZDdkYmQ2ZGQxNDRmODk1M2UzOWYzYTZmNDkzZWFfMjEwNA_4117e1cc-abe1-426b-be6e-20999edd1a50"
      unitRef="usd">300000</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="i0b68b7b01134465aa81635021c31c2ee_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RleHRyZWdpb246Zjk2ZDdkYmQ2ZGQxNDRmODk1M2UzOWYzYTZmNDkzZWFfNTQ5NzU1ODE2NTY4_f330e456-cd33-41b9-a3d6-7e8d2f235ac9"
      unitRef="usd">200000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="i939a45f5061a4a48958225d296e46077_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RleHRyZWdpb246Zjk2ZDdkYmQ2ZGQxNDRmODk1M2UzOWYzYTZmNDkzZWFfNTQ5NzU1ODE2NTgw_f7f8124d-cbaf-4c94-b470-eb89bf2acf45"
      unitRef="usd">100000</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:ScheduleOfInventoryCurrentTableTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RleHRyZWdpb246Zjk2ZDdkYmQ2ZGQxNDRmODk1M2UzOWYzYTZmNDkzZWFfMjMxMg_4b5e32d0-7ce1-4dda-b4e9-6e256da9bbb0">&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At March 31, 2023 and December 31, 2022, the Company's net inventories consisted of the following:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.561%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:57.637%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.121%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.430%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.681%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.431%"/&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;March 31, 2023&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;/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&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,548,636&#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,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;/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;179,786&#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;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;/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&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,985,883&#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,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;/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,714,305&#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,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;/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,534,303)&lt;/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,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;/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;10,180,002&#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;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;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfInventoryCurrentTableTextBlock>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RhYmxlOjlmZmI5Y2M3ODY3MDQ5YWZiMDNlZDE2MjYxMTE4ZDUxL3RhYmxlcmFuZ2U6OWZmYjljYzc4NjcwNDlhZmIwM2VkMTYyNjExMThkNTFfMi0yLTEtMS00NTkwNg_d244e1cd-538d-4c39-9290-23bac93ae6e8"
      unitRef="usd">12548636</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:InventoryRawMaterialsNetOfReserves
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RhYmxlOjlmZmI5Y2M3ODY3MDQ5YWZiMDNlZDE2MjYxMTE4ZDUxL3RhYmxlcmFuZ2U6OWZmYjljYzc4NjcwNDlhZmIwM2VkMTYyNjExMThkNTFfMi00LTEtMS00NTkwNg_001aece3-3fec-4820-a944-c9c3ec43593b"
      unitRef="usd">12899659</us-gaap:InventoryRawMaterialsNetOfReserves>
    <us-gaap:OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RhYmxlOjlmZmI5Y2M3ODY3MDQ5YWZiMDNlZDE2MjYxMTE4ZDUxL3RhYmxlcmFuZ2U6OWZmYjljYzc4NjcwNDlhZmIwM2VkMTYyNjExMThkNTFfMy0yLTEtMS00NTkwNg_1495a8e7-4c47-4cad-8067-a7f5058b3071"
      unitRef="usd">179786</us-gaap:OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment>
    <us-gaap:OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RhYmxlOjlmZmI5Y2M3ODY3MDQ5YWZiMDNlZDE2MjYxMTE4ZDUxL3RhYmxlcmFuZ2U6OWZmYjljYzc4NjcwNDlhZmIwM2VkMTYyNjExMThkNTFfMy00LTEtMS00NTkwNg_b538d69c-d39f-44f8-b8d3-7dfd4dac3f4c"
      unitRef="usd">168923</us-gaap:OtherInventoryMaterialsSuppliesAndMerchandiseUnderConsignment>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RhYmxlOjlmZmI5Y2M3ODY3MDQ5YWZiMDNlZDE2MjYxMTE4ZDUxL3RhYmxlcmFuZ2U6OWZmYjljYzc4NjcwNDlhZmIwM2VkMTYyNjExMThkNTFfNC0yLTEtMS00NTkwNg_f3ca0144-49ce-47d2-81e8-59342d2235e8"
      unitRef="usd">4985883</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryFinishedGoodsNetOfReserves
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RhYmxlOjlmZmI5Y2M3ODY3MDQ5YWZiMDNlZDE2MjYxMTE4ZDUxL3RhYmxlcmFuZ2U6OWZmYjljYzc4NjcwNDlhZmIwM2VkMTYyNjExMThkNTFfNC00LTEtMS00NTkwNg_7d16ae11-a3ed-448f-83c9-66befeda1722"
      unitRef="usd">4322167</us-gaap:InventoryFinishedGoodsNetOfReserves>
    <us-gaap:InventoryGross
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RhYmxlOjlmZmI5Y2M3ODY3MDQ5YWZiMDNlZDE2MjYxMTE4ZDUxL3RhYmxlcmFuZ2U6OWZmYjljYzc4NjcwNDlhZmIwM2VkMTYyNjExMThkNTFfNS0yLTEtMS00NTkwNg_93be856f-2978-4277-af6e-bc996914c1e5"
      unitRef="usd">17714305</us-gaap:InventoryGross>
    <us-gaap:InventoryGross
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RhYmxlOjlmZmI5Y2M3ODY3MDQ5YWZiMDNlZDE2MjYxMTE4ZDUxL3RhYmxlcmFuZ2U6OWZmYjljYzc4NjcwNDlhZmIwM2VkMTYyNjExMThkNTFfNS00LTEtMS00NTkwNg_5d5500e3-a0de-4421-b618-60136a7c5982"
      unitRef="usd">17390748</us-gaap:InventoryGross>
    <us-gaap:InventoryNoncurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RhYmxlOjlmZmI5Y2M3ODY3MDQ5YWZiMDNlZDE2MjYxMTE4ZDUxL3RhYmxlcmFuZ2U6OWZmYjljYzc4NjcwNDlhZmIwM2VkMTYyNjExMThkNTFfNi0yLTEtMS00NTkwNg_64f7c503-45e8-4e4b-bc1f-8a3481d74350"
      unitRef="usd">7534303</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryNoncurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RhYmxlOjlmZmI5Y2M3ODY3MDQ5YWZiMDNlZDE2MjYxMTE4ZDUxL3RhYmxlcmFuZ2U6OWZmYjljYzc4NjcwNDlhZmIwM2VkMTYyNjExMThkNTFfNi00LTEtMS00NTkwNg_d285bd5c-85e4-401c-9766-114cdcee0e3f"
      unitRef="usd">7527167</us-gaap:InventoryNoncurrent>
    <us-gaap:InventoryNet
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RhYmxlOjlmZmI5Y2M3ODY3MDQ5YWZiMDNlZDE2MjYxMTE4ZDUxL3RhYmxlcmFuZ2U6OWZmYjljYzc4NjcwNDlhZmIwM2VkMTYyNjExMThkNTFfNy0yLTEtMS00NTkwNg_da4b3a9f-9392-4bb1-bb82-d11438780d1c"
      unitRef="usd">10180002</us-gaap:InventoryNet>
    <us-gaap:InventoryNet
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80MC9mcmFnOmY5NmQ3ZGJkNmRkMTQ0Zjg5NTNlMzlmM2E2ZjQ5M2VhL3RhYmxlOjlmZmI5Y2M3ODY3MDQ5YWZiMDNlZDE2MjYxMTE4ZDUxL3RhYmxlcmFuZ2U6OWZmYjljYzc4NjcwNDlhZmIwM2VkMTYyNjExMThkNTFfNy00LTEtMS00NTkwNg_389a371d-9817-4257-b6fc-5645ad10c779"
      unitRef="usd">9863581</us-gaap:InventoryNet>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfMjk4Mw_8271889e-d5aa-4b54-aff5-e4e9c9f4cce2">LEASES&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;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"&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"&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 Company's 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;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.62 years at March 31, 2023.  The weighted-average incremental borrowing rate used to discount the present value of the remaining lease payments is 9.28% for the Broadwest lease and 7.42% for the remaining CET lease.  &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-style:italic;font-weight:400;line-height:120%"&gt;Lease Position&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;At March 31, 2023 and December 31, 2022, the Company's lease assets and liabilities were as follows:&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.794%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.344%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.346%"/&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;March 31, 2023&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;/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;4,919,057&#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;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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&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.794%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.344%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.346%"/&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;March 31, 2023&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;/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;158,369&#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;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;/tr&gt;&lt;tr style="height:12pt"&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 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 noncurrent 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;4,549,150&#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,586,301&#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;Total&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;4,707,519&#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;4,759,211&#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;&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;As of March 31, 2023, cumulative future minimum sublease income under non-cancelable operating subleases totals approximately $0.03 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&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.554%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.700%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.346%"/&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 Lease Liabilities at March 31, 2023&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:top"&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;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 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;587,511&#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&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;578,759&#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;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;543,023&#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;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;608,015&#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;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;623,199&#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;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,324,178&#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 lease payments&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;8,264,685&#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;Less: Interest&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;3,557,166&#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;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,707,519&#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-bottom:6pt;margin-top:4pt;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;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 were as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;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:57.233%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.677%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.344%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.700%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.346%"/&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="9" 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;Three months ended March 31,&lt;/span&gt;&lt;/td&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="border-top:1pt solid #000000;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;2023&lt;/span&gt;&lt;/td&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: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;/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;234,863&#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;285,963&#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: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;/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;115,631&#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;161,804&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:LesseeOperatingLeasesTextBlock>
    <cpix:LesseeOperatingLeaseLeasedArea
      contextRef="i4f1ce978139642ffa57f5d8efd6a152c_I20211115"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfNTQ5NzU1ODE3MTgz_d021e62c-18c6-4dc1-9e07-9a1f2ab651ba"
      unitRef="sqft">16903</cpix:LesseeOperatingLeaseLeasedArea>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="i4f1ce978139642ffa57f5d8efd6a152c_I20211115"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfNTQ5NzU1ODE3NDUy_ad3e66d6-17a5-4b96-a8ae-82452e8a76be">P157M</us-gaap:LesseeOperatingLeaseTermOfContract>
    <cpix:LesseeOperatingLeaseNumberOfRenewalTerms
      contextRef="i3a8364b46d1349f89526bbca803b9b2b_I20211115"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfNTQ5NzU1ODE3NDcw_c2b2dd94-e6ef-41bb-8bf5-3e1654f5ce2e"
      unitRef="renewalterm">2</cpix:LesseeOperatingLeaseNumberOfRenewalTerms>
    <us-gaap:LesseeOperatingLeaseRenewalTerm
      contextRef="i3a8364b46d1349f89526bbca803b9b2b_I20211115"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfNTQ5NzU1ODE3NTE5_3c370c86-6662-48ed-9fed-bfa7463e184f">P5Y</us-gaap:LesseeOperatingLeaseRenewalTerm>
    <cpix:LesseeOperatingLeaseBaseRent
      contextRef="i4f1ce978139642ffa57f5d8efd6a152c_I20211115"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfNTQ5NzU1ODE3Nzg0_44424a3f-d8ac-412c-be4c-e2ca3075c7c5"
      unitRef="usdPerSqft">33.06</cpix:LesseeOperatingLeaseBaseRent>
    <cpix:LesseeOperatingLeaseRentIncrease
      contextRef="iaf2b4c3ed09b49c69ab36803117edced_I20211115"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfNTQ5NzU1ODE3ODYx_d6794c16-1f4d-4c08-8929-d27c87f27686"
      unitRef="number">0.025</cpix:LesseeOperatingLeaseRentIncrease>
    <us-gaap:AreaOfRealEstateProperty
      contextRef="i049b67a4ada841f8a2827489c1ede626_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfMjg5_0c37f554-d94c-4922-9313-3bec9cc733ef"
      unitRef="sqft">14200</us-gaap:AreaOfRealEstateProperty>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="i50b28adc088b4efea984106ab32c61d9_I20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfNTQ5NzU1ODMwMTAz_2096a5d3-8d5d-4c20-b2a6-cdfab5dd282c">P12Y7M13D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="i50b28adc088b4efea984106ab32c61d9_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfNTQ5NzU1ODMwMTIw_87f96d81-fb9a-4a5f-be6c-26a28d61ebb7"
      unitRef="number">0.0928</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="ia97aab9d7d684fd486afb0916cc296bb_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfMTIzNw_ff11c69b-3ef8-420a-b464-da9a7b9783d9"
      unitRef="number">0.0742</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <cpix:AssetsAndLiabilitiesLesseeTableTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfMjk4NA_652c4b3e-b983-4d0a-8ac0-6a40ae3afd86">&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;At March 31, 2023 and December 31, 2022, the Company's lease assets and liabilities were as follows:&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.794%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.344%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.346%"/&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;March 31, 2023&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;/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;4,919,057&#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;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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:6pt;margin-top:6pt"&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.794%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.344%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.408%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.346%"/&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;March 31, 2023&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;/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;158,369&#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;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;/tr&gt;&lt;tr style="height:12pt"&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 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 noncurrent 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;4,549,150&#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,586,301&#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;Total&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;4,707,519&#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;4,759,211&#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;</cpix:AssetsAndLiabilitiesLesseeTableTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjYyZDg0ODlhMmE3ZjQzNjVhZGQwMTZlOGIxNWM1ZGFiL3RhYmxlcmFuZ2U6NjJkODQ4OWEyYTdmNDM2NWFkZDAxNmU4YjE1YzVkYWJfMS0yLTEtMS00NTkwNg_fe814e99-2316-4fc7-bc16-8b89207dd3c2"
      unitRef="usd">4919057</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjYyZDg0ODlhMmE3ZjQzNjVhZGQwMTZlOGIxNWM1ZGFiL3RhYmxlcmFuZ2U6NjJkODQ4OWEyYTdmNDM2NWFkZDAxNmU4YjE1YzVkYWJfMS00LTEtMS00NTkwNg_1fb1f54e-49bc-4d03-acca-49f1251cccb3"
      unitRef="usd">5218403</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjI0ZGU5YWE2MmExZjQzZmE4Mjg1YWY0NmZkYTcxMTRiL3RhYmxlcmFuZ2U6MjRkZTlhYTYyYTFmNDNmYTgyODVhZjQ2ZmRhNzExNGJfMS0yLTEtMS00NTkwNg_625592fc-26c1-4aef-a368-e3f63d6aa880"
      unitRef="usd">158369</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjI0ZGU5YWE2MmExZjQzZmE4Mjg1YWY0NmZkYTcxMTRiL3RhYmxlcmFuZ2U6MjRkZTlhYTYyYTFmNDNmYTgyODVhZjQ2ZmRhNzExNGJfMS00LTEtMS00NTkwNg_27bceb99-63df-4736-b85f-1937d17866ff"
      unitRef="usd">172910</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjI0ZGU5YWE2MmExZjQzZmE4Mjg1YWY0NmZkYTcxMTRiL3RhYmxlcmFuZ2U6MjRkZTlhYTYyYTFmNDNmYTgyODVhZjQ2ZmRhNzExNGJfMy0yLTEtMS00NTkwNg_26722223-5f54-4237-b6cd-cbdb09e88c91"
      unitRef="usd">4549150</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjI0ZGU5YWE2MmExZjQzZmE4Mjg1YWY0NmZkYTcxMTRiL3RhYmxlcmFuZ2U6MjRkZTlhYTYyYTFmNDNmYTgyODVhZjQ2ZmRhNzExNGJfMy00LTEtMS00NTkwNg_72671995-3378-470a-ab53-704fa0cbdb4b"
      unitRef="usd">4586301</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <cpix:LeaseLiability
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjI0ZGU5YWE2MmExZjQzZmE4Mjg1YWY0NmZkYTcxMTRiL3RhYmxlcmFuZ2U6MjRkZTlhYTYyYTFmNDNmYTgyODVhZjQ2ZmRhNzExNGJfNC0yLTEtMS00NTkwNg_342d7b11-a3c7-47a5-9b15-04119a326b35"
      unitRef="usd">4707519</cpix:LeaseLiability>
    <cpix:LeaseLiability
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjI0ZGU5YWE2MmExZjQzZmE4Mjg1YWY0NmZkYTcxMTRiL3RhYmxlcmFuZ2U6MjRkZTlhYTYyYTFmNDNmYTgyODVhZjQ2ZmRhNzExNGJfNC00LTEtMS00NTkwNg_7b3e01f2-5e2a-4719-b425-5b660f2c72a9"
      unitRef="usd">4759211</cpix:LeaseLiability>
    <us-gaap:LessorOperatingLeasePaymentsToBeReceived
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="-4"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfMjQ3Mw_1ad1c4ac-77b6-4bfd-972a-61fe72840d5e"
      unitRef="usd">30000.00</us-gaap:LessorOperatingLeasePaymentsToBeReceived>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfMjk4NQ_13dfa298-e87d-4f83-bcd7-7bfeb4dc94ba">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.554%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.700%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.346%"/&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 Lease Liabilities at March 31, 2023&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:top"&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;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 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;587,511&#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&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;578,759&#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;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;543,023&#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;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;608,015&#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;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;623,199&#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;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,324,178&#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 lease payments&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;8,264,685&#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;Less: Interest&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;3,557,166&#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;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,707,519&#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:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjhkMjE0YzIzMGY0NDQ5NGRhYmVhMGMxODIyOWZmZDk4L3RhYmxlcmFuZ2U6OGQyMTRjMjMwZjQ0NDk0ZGFiZWEwYzE4MjI5ZmZkOThfMS0yLTEtMS00ODAzNg_5c4f2d8a-6895-4866-90f9-084f8fa65aa0"
      unitRef="usd">587511</us-gaap:LesseeOperatingLeaseLiabilityPaymentsRemainderOfFiscalYear>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjhkMjE0YzIzMGY0NDQ5NGRhYmVhMGMxODIyOWZmZDk4L3RhYmxlcmFuZ2U6OGQyMTRjMjMwZjQ0NDk0ZGFiZWEwYzE4MjI5ZmZkOThfMi0yLTEtMS00ODAzNg_b461ba31-4e29-4d6a-86cf-f63a6580ad17"
      unitRef="usd">578759</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjhkMjE0YzIzMGY0NDQ5NGRhYmVhMGMxODIyOWZmZDk4L3RhYmxlcmFuZ2U6OGQyMTRjMjMwZjQ0NDk0ZGFiZWEwYzE4MjI5ZmZkOThfMy0yLTEtMS00ODAzNg_011276fb-b9f6-4b3b-8402-67c2a2fbdd5d"
      unitRef="usd">543023</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjhkMjE0YzIzMGY0NDQ5NGRhYmVhMGMxODIyOWZmZDk4L3RhYmxlcmFuZ2U6OGQyMTRjMjMwZjQ0NDk0ZGFiZWEwYzE4MjI5ZmZkOThfMS0yLTEtMS00NTkwNg_de52644f-7835-4603-9971-6d6139e89a84"
      unitRef="usd">608015</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjhkMjE0YzIzMGY0NDQ5NGRhYmVhMGMxODIyOWZmZDk4L3RhYmxlcmFuZ2U6OGQyMTRjMjMwZjQ0NDk0ZGFiZWEwYzE4MjI5ZmZkOThfMi0yLTEtMS00NTkwNg_9e20af19-7af2-4509-a860-b648b952f9eb"
      unitRef="usd">623199</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjhkMjE0YzIzMGY0NDQ5NGRhYmVhMGMxODIyOWZmZDk4L3RhYmxlcmFuZ2U6OGQyMTRjMjMwZjQ0NDk0ZGFiZWEwYzE4MjI5ZmZkOThfNi0yLTEtMS00ODAzNg_0d1f0946-2e3d-4c47-bf15-3f278b817b94"
      unitRef="usd">5324178</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjhkMjE0YzIzMGY0NDQ5NGRhYmVhMGMxODIyOWZmZDk4L3RhYmxlcmFuZ2U6OGQyMTRjMjMwZjQ0NDk0ZGFiZWEwYzE4MjI5ZmZkOThfMy0yLTEtMS00NTkwNg_adefbaaa-aece-47c4-9a1f-fd0a19a41440"
      unitRef="usd">8264685</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjhkMjE0YzIzMGY0NDQ5NGRhYmVhMGMxODIyOWZmZDk4L3RhYmxlcmFuZ2U6OGQyMTRjMjMwZjQ0NDk0ZGFiZWEwYzE4MjI5ZmZkOThfNC0yLTEtMS00NTkwNg_fcc103e2-7e9a-46db-a0d0-9937c14ab741"
      unitRef="usd">3557166</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOjhkMjE0YzIzMGY0NDQ5NGRhYmVhMGMxODIyOWZmZDk4L3RhYmxlcmFuZ2U6OGQyMTRjMjMwZjQ0NDk0ZGFiZWEwYzE4MjI5ZmZkOThfNS0yLTEtMS00NTkwNg_44ed131a-90b9-4ddb-96d3-f87e67df16bb"
      unitRef="usd">4707519</us-gaap:OperatingLeaseLiability>
    <cpix:ScheduleofRentExpenseandSubleaseIncomeTableTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RleHRyZWdpb246NDY2ZTlhMGExYWIwNGE4YzhkMWIzNDRjMjhiMjcyNjFfMjk4Mg_3d7a1101-f9b5-479b-b9fe-b2866787f829">Rent expense and sublease income were 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:57.233%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.677%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.344%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.700%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.346%"/&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="9" 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;Three months ended March 31,&lt;/span&gt;&lt;/td&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="border-top:1pt solid #000000;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;2023&lt;/span&gt;&lt;/td&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: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;/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;234,863&#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;285,963&#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: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;/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;115,631&#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;161,804&#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;/tr&gt;&lt;/table&gt;</cpix:ScheduleofRentExpenseandSubleaseIncomeTableTextBlock>
    <us-gaap:OperatingLeaseExpense
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOmZmYzE1ZjU3NzlmMzRkNjJiN2IzOGRlMDRkNzJkMjY5L3RhYmxlcmFuZ2U6ZmZjMTVmNTc3OWYzNGQ2MmI3YjM4ZGUwNGQ3MmQyNjlfMi0yLTEtMS00NTkwNg_7e307118-b835-4da6-8041-d84297356e1e"
      unitRef="usd">234863</us-gaap:OperatingLeaseExpense>
    <us-gaap:OperatingLeaseExpense
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOmZmYzE1ZjU3NzlmMzRkNjJiN2IzOGRlMDRkNzJkMjY5L3RhYmxlcmFuZ2U6ZmZjMTVmNTc3OWYzNGQ2MmI3YjM4ZGUwNGQ3MmQyNjlfMi00LTEtMS00NTkwNg_8ecc0cbe-81f5-4e2e-948e-02cf7494cb39"
      unitRef="usd">285963</us-gaap:OperatingLeaseExpense>
    <us-gaap:SubleaseIncome
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOmZmYzE1ZjU3NzlmMzRkNjJiN2IzOGRlMDRkNzJkMjY5L3RhYmxlcmFuZ2U6ZmZjMTVmNTc3OWYzNGQ2MmI3YjM4ZGUwNGQ3MmQyNjlfNC0yLTEtMS00NTkwNg_1904dc81-5cd7-4d5c-8c3f-a16df0a00fcb"
      unitRef="usd">115631</us-gaap:SubleaseIncome>
    <us-gaap:SubleaseIncome
      contextRef="ibba680830ba242bcb44427bccbf7460f_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80My9mcmFnOjQ2NmU5YTBhMWFiMDRhOGM4ZDFiMzQ0YzI4YjI3MjYxL3RhYmxlOmZmYzE1ZjU3NzlmMzRkNjJiN2IzOGRlMDRkNzJkMjY5L3RhYmxlcmFuZ2U6ZmZjMTVmNTc3OWYzNGQ2MmI3YjM4ZGUwNGQ3MmQyNjlfNC00LTEtMS00NTkwNg_ec8f0de9-5e52-4778-bfac-ca766b9aaa21"
      unitRef="usd">161804</us-gaap:SubleaseIncome>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNjU1Mg_960ed3e8-142c-4c24-b568-fdbacc3612ed">SHAREHOLDERS&#x2019; EQUITY AND DEBT&lt;div style="margin-top:8pt"&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;Share repurchases&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;Cumberland 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 of 1934. In January 2019, the Company's Board of Directors established the current $10 million repurchase program to replace the prior authorizations.  During the three months ended March 31, 2023 and March 31, 2022, the Company repurchased 86,829 shares and 174,149 shares of common stock for approximately $0.2 million and $0.6 million, respectively.  At March 31, 2023, approximately $3.6 million of common shares was left to repurchase under this program.&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-style:italic;font-weight:400;line-height:120%"&gt;Share purchases and sales&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;In the Company's May 2023 trading window, several members of Cumberland's Board of Directors will enter into share purchase agreements of the Company's stock pursuant to Rule 10b5-1 of the Securities Exchange Act of 1934. These purchases are designed to increase ownership in the Company by the members of the Board.  &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-style:italic;font-weight:400;line-height:120%"&gt;Share Sales&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;In November 2017, Cumberland filed a Shelf Registration on Form S-3 with the SEC associated with the sale of up to $100 million in corporate securities. The Shelf Registration was declared effective in January 2018. It also included an At the Market ("ATM") feature that allowed 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.  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 million.  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. The Company did not issue any shares under an ATM during the three months ended March 31, 2023 or March 31, 2022.&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-style:italic;font-weight:400;line-height:120%"&gt;Restricted Share Grants and Incentive Stock Options&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;During the three months ended March 31, 2023 and March 31, 2022, the Company issued 28,250 shares and 65,225 shares of restricted stock to employees, advisors and directors, respectively. Restricted stock issued to employees and advisors generally cliff-vests on the fourth anniversary of the date of grant and for directors on the one-year anniversary of the date of grant.  During the three months ended March 31, 2023 and 2022, the Company also issued 183,250 and 166,350 incentive stock options, respectively, to employees that cliff-vest on the fourth anniversary of the date of grant, that are set to expire in 2033 and 2032, respectively. Stock compensation expense is presented as a component of general and administrative expense in the condensed consolidated statements of operations.  For the three months ended March 31, 2023, we recorded a credit of $0.04&#160;million to share-based compensation related to the forfeiture of unvested restricted stock awards.&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-style:italic;font-weight:400;line-height:120%"&gt;Debt Agreement&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;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.&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;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 March 31, 2022, the Company and Pinnacle Bank entered into a Seventh Amendment to the Revolving Credit Loan Agreement to revise and update the Maximum Funded Debt Ratio financial covenant and to delete from the Pinnacle Agreement the Funded Debt to Tangible Capital Ratio financial covenant. These changes were made to more appropriately reflect the impact from the Sancuso acquisition. On June 30, 2022, the Company entered into the Eighth Amendment to the Revolving Credit Loan Agreement with Pinnacle Bank permitting the Maximum Funded Debt Ratio to be calculated on a rolling four-quarter basis to be no more than 3.00 to 1.00 for the second and third quarters of 2022 and 2.50 to 1.00 for each quarter thereafter.   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 quarter ended March 31, 2023, 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"&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 current pricing under the Pinnacle Agreement provides for an interest rate spread of 1.75% to 2.75% above LIBOR with a minimum LIBOR of 0.90%. The applicable interest rate under the Pinnacle Agreement was 7.375% at March 31, 2023.  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.  The LIBOR rate will no longer be used as of June 30, 2023, at which time the benchmark rate will be changed from LIBOR to Term SOFR.&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;As of March 31, 2023 and December 31, 2022, the Company had $16.1 million and $16.2 million, respectively, in borrowings outstanding under its revolving credit facility.  &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;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-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;Joint Venture Agreement&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 August 2020, Cumberland entered into an agreement with WinHealth Investment (Singapore) Ltd creating &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;WHC Biopharmaceuticals, Pte. Ltd&lt;/span&gt;. 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 a $0.2&#160;million convertible note, which was funded during the first quarter of 2021. The joint venture will seek additional future capital from additional investors and has entered into exclusive option agreements to license product candidates from both Cumberland Pharmaceuticals Inc. and Cumberland Emerging Technologies Inc.</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="i4afbcb5fba4d4a1d8a087e5d9008e5d9_I20100513"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMTMw_6360c4bd-9252-466b-844f-0ea053cccce8"
      unitRef="usd">10000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="i7d99bf36d0104e0388920db036eb3ed2_I20160131"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMjkx_20d2a2e8-7240-4bb3-bc9f-d99c6c0c756b"
      unitRef="usd">10000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="icf9186d88cd34c189ca611958661dbf7_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMzk3_8f22d20f-b4e9-464a-aa47-931ad1a83efc"
      unitRef="shares">86829</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodShares
      contextRef="i6e57b172666d4a2288b8e5fde755512d_D20220101-20220331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNDEx_781aa853-665f-4488-aa27-ec67f74223e2"
      unitRef="shares">174149</us-gaap:StockRepurchasedDuringPeriodShares>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="icf9186d88cd34c189ca611958661dbf7_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNDU1_8126f23c-dab0-44c9-80a6-4714e1fb10c1"
      unitRef="usd">200000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchasedDuringPeriodValue
      contextRef="i6e57b172666d4a2288b8e5fde755512d_D20220101-20220331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNDYy_7bccb21c-fa32-401d-9435-1f3ce8b0a262"
      unitRef="usd">600000</us-gaap:StockRepurchasedDuringPeriodValue>
    <us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1
      contextRef="ieaa823ff0ab54452af8bbfadfb40cf88_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNTAy_572d7316-a17c-4881-9371-45e3104cb0f4"
      unitRef="usd">3600000</us-gaap:StockRepurchaseProgramRemainingAuthorizedRepurchaseAmount1>
    <cpix:StockIssuedDuringPeriodShelfRegistrationProceedsFromSaleOfCorporateSecurities
      contextRef="i4b57a58712e74809ae2518a342bbfc8a_D20171101-20171130"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMTE1NQ_9855b1b6-fa39-493b-9060-6580bb20177b"
      unitRef="usd">100000000</cpix:StockIssuedDuringPeriodShelfRegistrationProceedsFromSaleOfCorporateSecurities>
    <cpix:StockIssuedDuringPeriodShelfRegistrationProceedsFromSaleOfCorporateSecurities
      contextRef="i1c55618f6c5a49939c91a52e719a9556_D20211227-20211227"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMTczMw_b914d49b-36e4-442a-bb20-73be3c5339a6"
      unitRef="usd">19000000</cpix:StockIssuedDuringPeriodShelfRegistrationProceedsFromSaleOfCorporateSecurities>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i418c071f773e493bbdd32949f539f542_D20230101-20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMjA0Mg_7a78c78e-dac3-433e-b217-dffe109a28c9"
      unitRef="shares">28250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i013a01798b674990bda32746a63a9bcd_D20220101-20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMjA1Ng_268d6065-692d-4389-b93b-11ea281f97c2"
      unitRef="shares">65225</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i3dd89fce4bbe496ab54a639f67e6966d_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNjU1MQ_6263aa08-e990-491c-8fc2-0b1f38613735">P1Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i4e8b5ebbe5f54d37acb467699b819d53_D20230101-20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMjM3MQ_bae6d6b4-72d4-4b41-a96b-7eee617efc15"
      unitRef="shares">183250</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i63b30cb0dab0416e82e2367680b40f47_D20220101-20220331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMjM3OA_0cae8b9a-4885-4124-9f83-0683c56ad9b3"
      unitRef="shares">166350</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i418c071f773e493bbdd32949f539f542_D20230101-20230331"
      decimals="-4"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMjczOA_aedd9cb4-370b-417b-91e1-231a377da2d2"
      unitRef="usd">-40000.00</us-gaap:AllocatedShareBasedCompensationExpense>
    <cpix:LineOfCreditFacilityAdditionalBorrowingCapacity
      contextRef="iffcd93d62bab4e44a26be01fd717844c_I20211231"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNTQ5NzU1ODIyNDQ5_d0807d08-3279-49f2-95e9-a09a170bf5f6"
      unitRef="usd">5000000</cpix:LineOfCreditFacilityAdditionalBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity
      contextRef="iffcd93d62bab4e44a26be01fd717844c_I20211231"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNTQ5NzU1ODIyMzk3_072026e6-ce51-41b8-a54e-d4317711c925"
      unitRef="usd">20000000</us-gaap:LineOfCreditFacilityCurrentBorrowingCapacity>
    <cpix:DebtInstrumentCovenantFundedDebtRatioMaximum
      contextRef="i0ee792037ad24f32a193eaf0a425d5ac_D20220401-20220930"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMTA5OTUxMTY0MDY4Nw_f5d45ca5-a473-4e09-b2c4-1fb8524db413"
      unitRef="number">3.00</cpix:DebtInstrumentCovenantFundedDebtRatioMaximum>
    <cpix:DebtInstrumentCovenantFundedDebtRatioMaximum
      contextRef="id8989818d082428f810a0f2d67d1ba2a_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMTA5OTUxMTY0MDY5OQ_a6acafb5-616b-4402-ba25-642fb11dbcb8"
      unitRef="number">2.50</cpix:DebtInstrumentCovenantFundedDebtRatioMaximum>
    <cpix:DebtInstrumentCovenantUnrestrictedCashThreshold
      contextRef="i7bf205d89d0f4bbc97a466819e38a259_I20220929"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMzEzMQ_4e0e615b-2c2a-4edd-85ec-536a2daedc25"
      unitRef="usd">8500000</cpix:DebtInstrumentCovenantUnrestrictedCashThreshold>
    <cpix:DebtInstrumentCovenantEvaluationFrequency
      contextRef="i7bf205d89d0f4bbc97a466819e38a259_I20220929"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfMzIxOA_092e4f5c-0842-49b7-b119-72466f0e6ebe"
      unitRef="q">4</cpix:DebtInstrumentCovenantEvaluationFrequency>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="ib87aa9b105bd42a19d2435ddfe7a7834_D20200814-20200814"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNTA0Mg_73314cd3-2abe-4722-95d3-71b1729f4691"
      unitRef="number">0.0175</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="i47da99f45e0440398ffd975817b2efce_D20200814-20200814"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNTA0OA_c6aeb981-c29e-4325-b784-660b787f40e0"
      unitRef="number">0.0275</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="i8117fb7667394b2f8d51eb672ad660af_D20200814-20200814"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNTA4Nw_0334973d-957d-44ae-82f9-89c8cd535803"
      unitRef="number">0.0090</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="ifa9c80f982f947eebf8cfe734dbb223d_I20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNTE1Mw_f3dc0a45-6b1b-4153-ae1e-30d7e505fe2c"
      unitRef="number">0.07375</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="i17124cadeabb43b783b97a30611b1131_D20230101-20230331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNTE4Ng_c7a8eee2-3b42-48de-a6ef-67d719b9724a"
      unitRef="number">0.0025</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <us-gaap:LongTermLineOfCredit
      contextRef="i314d6baf5bd141d09dc589a0d087077a_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNTUwNQ_8ff6ca57-e06d-4f0e-85be-c733125db3fb"
      unitRef="usd">16100000</us-gaap:LongTermLineOfCredit>
    <us-gaap:LongTermLineOfCredit
      contextRef="i32a3a0c770dd4a9aacc98814f4d15ea5_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNTUxMg_ea2b9cd5-fbe7-41a5-a8f1-9084ac8cee58"
      unitRef="usd">16200000</us-gaap:LongTermLineOfCredit>
    <us-gaap:InvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures
      contextRef="i014f95ecf28e47dc9a81e3356a78cbfa_I20200831"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNjE1Mg_ba99d4c2-a890-49c7-857d-b226048e1b53"
      unitRef="usd">200000</us-gaap:InvestmentsInAffiliatesSubsidiariesAssociatesAndJointVentures>
    <us-gaap:DebtInstrumentFaceAmount
      contextRef="idd2a67aac74043969c46355ae44bb9ff_I20200831"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80Ni9mcmFnOjJhZWIzMjhmMTAzMjQ2ZjI4Nzk2YmI3YWZhODVhMDk5L3RleHRyZWdpb246MmFlYjMyOGYxMDMyNDZmMjg3OTZiYjdhZmE4NWEwOTlfNjIzNA_3ea8b28e-3f8a-49a6-bfa5-0dd7db3eeb6a"
      unitRef="usd">200000</us-gaap:DebtInstrumentFaceAmount>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80OS9mcmFnOjY3MTRlN2Q5OWQxNTQ0MGRiZTYzMDY0ZjQyMTMxNGNkL3RleHRyZWdpb246NjcxNGU3ZDk5ZDE1NDQwZGJlNjMwNjRmNDIxMzE0Y2RfNjM3_0e9cd085-5fe0-4ad7-909b-9b5e2b5eae56">INCOME TAXESAs of March 31, 2023, the Company has approximately $57.8 million in federal net operating loss carryforwards including approximately $44.1 million of net operating loss carryforwards resulting from the exercise of nonqualified stock options. These have historically been used to significantly offset income tax obligations. The Company expects it will continue to pay minimal income taxes during 2023 and beyond, through the continued utilization of these net operating loss carryforwards, on any taxable income generated from our operations.</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:OperatingLossCarryforwards
      contextRef="i90e00eccd5aa49ab87f56422938153e5_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80OS9mcmFnOjY3MTRlN2Q5OWQxNTQ0MGRiZTYzMDY0ZjQyMTMxNGNkL3RleHRyZWdpb246NjcxNGU3ZDk5ZDE1NDQwZGJlNjMwNjRmNDIxMzE0Y2RfNjI_e1b077bc-e246-4cf0-91b5-a1afa9ebcc6a"
      unitRef="usd">57800000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="i1cfe8482250b40a4a99b93d7167bf9ef_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV80OS9mcmFnOjY3MTRlN2Q5OWQxNTQ0MGRiZTYzMDY0ZjQyMTMxNGNkL3RleHRyZWdpb246NjcxNGU3ZDk5ZDE1NDQwZGJlNjMwNjRmNDIxMzE0Y2RfMTMz_813d8a8b-1752-40ad-95f6-e8500897cef7"
      unitRef="usd">44100000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81Mi9mcmFnOjQyODNmYjFiMzJlYjQxOWZiOTg5MTU2NDdjNTBkNzAzL3RleHRyZWdpb246NDI4M2ZiMWIzMmViNDE5ZmI5ODkxNTY0N2M1MGQ3MDNfMTA5OTUxMTYyOTAyNA_259319d0-f854-4089-af46-bc932ff0288e">OTHER INCOMEThe Company realized a $1.8&#160;million gain in the first quarter of 2023 for previously paid prescription drug fees.  In March 2023, the Company was granted a barrier-to-innovation waiver from the FDA for the fiscal year 2022 RediTrex prescription drug fees resulting in a refund of $1.8&#160;million.  This refund is expected to be paid in second quarter of 2023.</us-gaap:OtherIncomeAndOtherExpenseDisclosureTextBlock>
    <us-gaap:InsuredEventGainLoss
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81Mi9mcmFnOjQyODNmYjFiMzJlYjQxOWZiOTg5MTU2NDdjNTBkNzAzL3RleHRyZWdpb246NDI4M2ZiMWIzMmViNDE5ZmI5ODkxNTY0N2M1MGQ3MDNfMTA5OTUxMTYyOTAxMQ_2b6b8a87-1690-4211-8201-8fdba17a1a6f"
      unitRef="usd">1800000</us-gaap:InsuredEventGainLoss>
    <us-gaap:OtherIncome
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81Mi9mcmFnOjQyODNmYjFiMzJlYjQxOWZiOTg5MTU2NDdjNTBkNzAzL3RleHRyZWdpb246NDI4M2ZiMWIzMmViNDE5ZmI5ODkxNTY0N2M1MGQ3MDNfMTA5OTUxMTYyOTAzOQ_9b1b1083-3649-413a-942e-beae61cc46c5"
      unitRef="usd">1800000</us-gaap:OtherIncome>
    <us-gaap:CollaborativeArrangementDisclosureTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81NS9mcmFnOjhkZmY1ZjA1N2EyZTQ4M2FhOTE2ZWU1ZWM3NjQ2ODcyL3RleHRyZWdpb246OGRmZjVmMDU3YTJlNDgzYWE5MTZlZTVlYzc2NDY4NzJfMTAyNg_04821286-0202-477d-8704-0fc66bc47aed">COLLABORATIVE AGREEMENTS&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cumberland 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 received related to RediTrex, 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 incurred under these collaborative agreements are included in research and development expenses and funding received from grants are recorded as net revenues in the condensed consolidated statements of operations.&lt;/span&gt;</us-gaap:CollaborativeArrangementDisclosureTextBlock>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81MjYvZnJhZzo4M2I5MjA3MmRkYzI0MTU1OTY0OTdhMzc0YzFlNmFkZS90ZXh0cmVnaW9uOjgzYjkyMDcyZGRjMjQxNTU5NjQ5N2EzNzRjMWU2YWRlXzEwOTk1MTE2MjgwOTI_d5510047-2655-4d80-91a3-d2c4a041d456">COMMITMENTS AND CONTINGENCIESThe company is involved in litigation arising in the normal course of business.  The Company does not believe that the disposition or ultimate resolution of existing claims or lawsuits will have a material adverse effect on the business or financial condition of the Company.</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfOTQ1MA_f2b38df6-c7cb-4ce1-a60b-09bffd0a1142">ADDITIONS AND RETURN OF PRODUCT RIGHTS&lt;div style="margin-top:7pt;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;Vibativ&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;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, Food and Drug Administration ("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.  &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;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 $20.0&#160;million at the closing of the transaction and a $5.0&#160;million milestone payment in early April 2019. In addition, Cumberland has agreed to pay a royalty of up to 20% of on-going net sales of the product after the $2.5&#160;million threshold is met. 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 prepared the valuations of the contingent consideration liability utilizing significant unobservable inputs.  As a result, the valuation is classified as Level 3 fair value measurement. &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;The following table presents the changes in the fair value of the contingent consideration liability that is remeasured on a recurring basis.  The contingent consideration earned and accrued in operating expenses is paid to Theravance quarterly.&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:79.455%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.345%"/&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="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;div&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;/div&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;4,154,823&#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;Cash payment of royalty during the period&lt;/span&gt;&lt;/td&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;(245,391)&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;Change in fair value of contingent consideration included in operating expenses&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;176,122&#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;Contingent consideration earned and accrued in operating expenses&lt;/span&gt;&lt;/td&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;&#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;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;Balance at March 31, 2023&lt;/span&gt;&lt;/div&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,085,554&#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:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;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;The contingent consideration liability of $4.1 million was accounted for as $1.2 million of other current liabilities and $2.9 million of other long-term liabilities on the condensed consolidated balance sheet as of March 31, 2023.  &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-style:italic;font-weight:400;line-height:120%"&gt;RediTrex&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;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: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;As consideration for the license, Cumberland paid a deposit of $100,000 at closing.  The Company provided $0.9&#160;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 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: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;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&#160;million on the vesting date. The FDA approval also resulted in a $1.0&#160;million milestone payment due to Nordic.  During December 2020, Cumberland introduced RediTrex and the launch that took place in late 2021 resulted in a $1.0&#160;million milestone payment due to Nordic.  &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.  In accordance with the terms of the amendment, Nordic has returned the 180,000 restricted Cumberland shares we previously issued to Nordic which were cancelled, refunded to Cumberland the milestone payment of $1.0&#160;million we made associated with the brand's U.S. approval and issued 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;/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-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"&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"&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"&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"&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.  In March 2023, Cumberland paid $1.0&#160;million of the $3.5&#160;million milestone payments to Kwoya Kirin for the approval by the FDA of the manufacturing site for the product.&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;In addition, Cumberland has agreed to pay a royalty of up to 10% of on-going net sales of the product.  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.  As a result, the valuation is classified as Level 3 fair value measurement.  &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;The acquisition was funded by cash and the Company's revolving credit facility.  The Company worked with an outside consultant to finalize the Sancuso valuation of the transaction.  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: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;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="margin-top:6pt;text-align:justify"&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:79.455%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.345%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&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;/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, 2022&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;3,000,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;/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;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;(244,920)&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 of contingent consideration included in operating expenses&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;(443,759)&lt;/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;Contingent consideration earned and accrued in operating expenses&lt;/span&gt;&lt;/td&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;188,679&#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;div&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 March 31, 2023&lt;/span&gt;&lt;/div&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;2,500,000&#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:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;The contingent consideration liability earned and accrued in operating expenses is paid to Kyowa Kirin quarterly.  The contingent consideration liability of $2.5 million was accounted for as $1.3 million of current liabilities and $1.2 million of other long-term liabilities on the condensed consolidated balance sheet as of March 31, 2023.</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="i910d1c8e30b447a685124ae92adb5f51_D20181101-20181130"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfOTY5_1b29ccf8-545d-4927-8e30-ea874b179332"
      unitRef="usd">20000000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:OtherPaymentsToAcquireBusinesses
      contextRef="i910d1c8e30b447a685124ae92adb5f51_D20181101-20181130"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMTAxMg_55b86aed-d7b0-44f0-b62b-1b069c028511"
      unitRef="usd">5000000</us-gaap:OtherPaymentsToAcquireBusinesses>
    <cpix:TieredRoyaltyPaymentsPercentage
      contextRef="i910d1c8e30b447a685124ae92adb5f51_D20181101-20181130"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMTExNQ_6f871b39-2025-4ee8-8840-9289a1520246"
      unitRef="number">0.20</cpix:TieredRoyaltyPaymentsPercentage>
    <cpix:TieredRoyaltyPaymentsThreshold
      contextRef="i910d1c8e30b447a685124ae92adb5f51_D20181101-20181130"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMTE2NQ_2ab9d591-826a-4199-9112-d0f59b9ed204"
      unitRef="usd">2500000</cpix:TieredRoyaltyPaymentsThreshold>
    <us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionContingentConsiderationTextBlock
      contextRef="id6f3c1830d634b2086b95c19a4052d30_D20230101-20230331"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfOTQ0NQ_9857956f-2e03-41d8-a65d-02a1877aad64">&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.  The contingent consideration earned and accrued in operating expenses is paid to Theravance quarterly.&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:79.455%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.345%"/&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="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;div&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;/div&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;4,154,823&#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;Cash payment of royalty during the period&lt;/span&gt;&lt;/td&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;(245,391)&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;Change in fair value of contingent consideration included in operating expenses&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;176,122&#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;Contingent consideration earned and accrued in operating expenses&lt;/span&gt;&lt;/td&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;&#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;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;Balance at March 31, 2023&lt;/span&gt;&lt;/div&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,085,554&#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:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&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;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="margin-top:6pt;text-align:justify"&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:79.455%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.345%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:3pt"&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;/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, 2022&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;3,000,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;/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;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;(244,920)&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 of contingent consideration included in operating expenses&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;(443,759)&lt;/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;Contingent consideration earned and accrued in operating expenses&lt;/span&gt;&lt;/td&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;188,679&#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;div&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 March 31, 2023&lt;/span&gt;&lt;/div&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;2,500,000&#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:5pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfBusinessAcquisitionsByAcquisitionContingentConsiderationTextBlock>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="i7c76ad6b0d9d43bea791e5d7ff63409c_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RhYmxlOjdjNTJhZDVjYjgxMDQ5Yzk4ZDcxYzNkMjdlMDkyMzIzL3RhYmxlcmFuZ2U6N2M1MmFkNWNiODEwNDljOThkNzFjM2QyN2UwOTIzMjNfOS0xLTEtMS00NTkwNg_24184fc6-90c7-43fb-857f-98e8689f2979"
      unitRef="usd">4154823</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:PaymentsForRoyalties
      contextRef="i499b37cd8cf54392a0f2ec322fe40eee_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RhYmxlOjdjNTJhZDVjYjgxMDQ5Yzk4ZDcxYzNkMjdlMDkyMzIzL3RhYmxlcmFuZ2U6N2M1MmFkNWNiODEwNDljOThkNzFjM2QyN2UwOTIzMjNfMTAtMS0xLTEtNDU5MDY_265a02c3-c277-413c-815f-7048223bb938"
      unitRef="usd">245391</us-gaap:PaymentsForRoyalties>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="i499b37cd8cf54392a0f2ec322fe40eee_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RhYmxlOjdjNTJhZDVjYjgxMDQ5Yzk4ZDcxYzNkMjdlMDkyMzIzL3RhYmxlcmFuZ2U6N2M1MmFkNWNiODEwNDljOThkNzFjM2QyN2UwOTIzMjNfMTEtMS0xLTEtNDU5MDY_62b9ad52-cb21-4295-add7-adfb9ddf582f"
      unitRef="usd">176122</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <cpix:BusinessCombinationContingentConsiderationEarnedAndAccruedInOperatingExpenses
      contextRef="i499b37cd8cf54392a0f2ec322fe40eee_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RhYmxlOjdjNTJhZDVjYjgxMDQ5Yzk4ZDcxYzNkMjdlMDkyMzIzL3RhYmxlcmFuZ2U6N2M1MmFkNWNiODEwNDljOThkNzFjM2QyN2UwOTIzMjNfMTItMS0xLTEtNDU5MDY_2c1c599d-a774-4e64-be47-72af42a439c1"
      unitRef="usd">0</cpix:BusinessCombinationContingentConsiderationEarnedAndAccruedInOperatingExpenses>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="if921eb31fa6f45b39876cdd2bde81d95_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RhYmxlOjdjNTJhZDVjYjgxMDQ5Yzk4ZDcxYzNkMjdlMDkyMzIzL3RhYmxlcmFuZ2U6N2M1MmFkNWNiODEwNDljOThkNzFjM2QyN2UwOTIzMjNfMTMtMS0xLTEtNDU5MDY_5d87c106-bb2e-49f3-adc2-bd12e5b287ed"
      unitRef="usd">4085554</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="if921eb31fa6f45b39876cdd2bde81d95_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMTg5MQ_9cb055aa-0a76-455b-a7a7-ba49e405144b"
      unitRef="usd">4100000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent
      contextRef="if921eb31fa6f45b39876cdd2bde81d95_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMTkxNQ_fc975862-6c51-4913-81d4-d1c225b87d1b"
      unitRef="usd">1200000</us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent
      contextRef="if921eb31fa6f45b39876cdd2bde81d95_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMTk1MQ_daf37173-b453-4556-84f9-2ec9d42aaf7e"
      unitRef="usd">2900000</us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent>
    <us-gaap:PaymentsToAcquireBusinessesGross
      contextRef="idee1724666bd4296b087588595669561_D20161101-20161130"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMjQ0MA_9bdc7028-1ac9-492e-885e-6d315f596e85"
      unitRef="usd">100000</us-gaap:PaymentsToAcquireBusinessesGross>
    <us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred
      contextRef="idee1724666bd4296b087588595669561_D20161101-20161130"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMjQ3Nw_e5d419d1-356a-4dfd-8ae0-42deb02f0f87"
      unitRef="usd">900000</us-gaap:BusinessCombinationConsiderationTransferredLiabilitiesIncurred>
    <us-gaap:StockIssuedDuringPeriodSharesAcquisitions
      contextRef="i8321269afd0c421ebdd0224b1a27d392_D20161101-20161130"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMjUxNg_3e5a05c9-f228-4cc3-b7ac-93258c8c7bce"
      unitRef="shares">180000</us-gaap:StockIssuedDuringPeriodSharesAcquisitions>
    <us-gaap:StockIssuedDuringPeriodSharesAcquisitions
      contextRef="i8321269afd0c421ebdd0224b1a27d392_D20161101-20161130"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMzEyNw_702e1a3e-3480-43e2-9120-d8a6885d71af"
      unitRef="shares">180000</us-gaap:StockIssuedDuringPeriodSharesAcquisitions>
    <us-gaap:StockIssuedDuringPeriodValueAcquisitions
      contextRef="i47826f88ea0b4a6eb3f2a0fbce1e5c79_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMzI0NQ_1425efcc-852b-469d-b507-62a58c094f3d"
      unitRef="usd">900000</us-gaap:StockIssuedDuringPeriodValueAcquisitions>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="i4038ab9268e54e9ea5e0321e85b66082_I20200731"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMzMwNQ_df46be43-66e4-4f20-8457-30e7c426f9e1"
      unitRef="usd">1000000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="i55d3542573f24209aee0933490837ee7_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMzQ1Mw_f5c1ec60-593b-4279-8bdc-ec9837be9c0d"
      unitRef="usd">1000000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <cpix:CollaborativeArrangementRightsAndObligationsRestrictedSharesReceivable
      contextRef="i90fc46e8567a4446ba6f1f69166c1051_I20220712"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMzkxMA_aa321a13-a666-4991-a872-6b67c90838c8"
      unitRef="shares">180000</cpix:CollaborativeArrangementRightsAndObligationsRestrictedSharesReceivable>
    <cpix:CollaborativeArrangementRightsAndObligationsMilestonePaymentReceivable
      contextRef="id0e8f0a1b5ac44cfa0861149a172d293_I20220712"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNDA0NA_02a13b8b-0841-436c-ab12-ec9944e7824c"
      unitRef="usd">1000000</cpix:CollaborativeArrangementRightsAndObligationsMilestonePaymentReceivable>
    <cpix:CollaborativeArrangementRightsAndObligationsMilestonePaymentCreditDue
      contextRef="id0e8f0a1b5ac44cfa0861149a172d293_I20220712"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNDE2Mg_4f65be64-18d9-43d8-b6ba-117f2d444267"
      unitRef="usd">1000000</cpix:CollaborativeArrangementRightsAndObligationsMilestonePaymentCreditDue>
    <cpix:CollaborativeArrangementRightsAndObligationsUpfrontPayment
      contextRef="i20b2ea64a45e4649b835fa2bde154e6d_I20220103"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNTY5Nw_157d2d64-cc9f-433b-855e-eb9cc603ff27"
      unitRef="usd">13500000</cpix:CollaborativeArrangementRightsAndObligationsUpfrontPayment>
    <cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsMaximum
      contextRef="i20b2ea64a45e4649b835fa2bde154e6d_I20220103"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNTc4Nw_24eeee42-5097-460e-8fda-9a716660eb5e"
      unitRef="usd">3500000</cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsMaximum>
    <cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsExpected
      contextRef="ibcdddac945434b87b9564d50977a987e_D20230101-20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNTg4NA_2ff37bf9-e681-4695-95ad-81f72e0b8602"
      unitRef="usd">1500000</cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePaymentsExpected>
    <cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePayments
      contextRef="i44f4dc27a7c64611b4e00cd930bd4746_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfMTA5OTUxMTY0MTUwNg_9335a07b-c666-4bb5-9bb2-89c29a7f35e9"
      unitRef="usd">1000000</cpix:CollaborativeArrangementRightsAndObligationsSalesMilestonePayments>
    <cpix:CollaborativeArrangementRightsAndObligationsTieredRoyaltyPercent
      contextRef="icb7fb24ed38f426d9b39670f3390245e_I20220103"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNTk5OQ_8b65df24-f29c-4d3c-b16e-d237978fa673"
      unitRef="number">0.10</cpix:CollaborativeArrangementRightsAndObligationsTieredRoyaltyPercent>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets
      contextRef="ie9300edb1e774e3ea979ca48d8d32a68_I20220103"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNjgyMA_3013a448-d682-4ac0-b36e-e294e0ed2cdb"
      unitRef="usd">1800000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedCurrentAssetsPrepaidExpenseAndOtherAssets>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory
      contextRef="ie9300edb1e774e3ea979ca48d8d32a68_I20220103"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNjgzNA_e9616d76-1efd-4a2e-ab47-6e7556700dce"
      unitRef="usd">2600000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedInventory>
    <us-gaap:Goodwill
      contextRef="ie9300edb1e774e3ea979ca48d8d32a68_I20220103"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNjg0Nw_0c26028c-0837-4bae-a848-65a076ae8bf0"
      unitRef="usd">30000.00</us-gaap:Goodwill>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill
      contextRef="ie9300edb1e774e3ea979ca48d8d32a68_I20220103"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNjg2OQ_ebf49070-4296-4a7f-b2d6-9960f353e269"
      unitRef="usd">14100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedIntangibleAssetsOtherThanGoodwill>
    <us-gaap:OtherPaymentsToAcquireBusinesses
      contextRef="id571878b227b429aabb39f702150f09b_D20220103-20220103"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNjg5MQ_2c449dc7-7d7d-4ab3-9230-1ead20c3051b"
      unitRef="usd">1700000</us-gaap:OtherPaymentsToAcquireBusinesses>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="ie9300edb1e774e3ea979ca48d8d32a68_I20220103"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNjkxOQ_6afaddc2-500f-4b56-be60-7f2e0dc975c9"
      unitRef="usd">3400000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="i339eef896e214990b9293f54ead2c9f0_I20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RhYmxlOjMxYzgwNDNjMGNkYjQ4YmE5ODJkZGZkYWUxMjFiMjE0L3RhYmxlcmFuZ2U6MzFjODA0M2MwY2RiNDhiYTk4MmRkZmRhZTEyMWIyMTRfOS0xLTEtMS00NTkwNg_6a585d64-268e-4844-a720-5b691d52196f"
      unitRef="usd">3000000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:PaymentsForRoyalties
      contextRef="i34ec3c62de204f83a7f07694bba18e4f_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RhYmxlOjMxYzgwNDNjMGNkYjQ4YmE5ODJkZGZkYWUxMjFiMjE0L3RhYmxlcmFuZ2U6MzFjODA0M2MwY2RiNDhiYTk4MmRkZmRhZTEyMWIyMTRfMTAtMS0xLTEtNDU5MDY_770bc2c4-67fe-492f-a534-0ccbd6b1e311"
      unitRef="usd">244920</us-gaap:PaymentsForRoyalties>
    <us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1
      contextRef="i34ec3c62de204f83a7f07694bba18e4f_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RhYmxlOjMxYzgwNDNjMGNkYjQ4YmE5ODJkZGZkYWUxMjFiMjE0L3RhYmxlcmFuZ2U6MzFjODA0M2MwY2RiNDhiYTk4MmRkZmRhZTEyMWIyMTRfMTEtMS0xLTEtNDU5MDY_4d83979e-3158-46fc-932a-c6c818c109e0"
      unitRef="usd">-443759</us-gaap:BusinessCombinationContingentConsiderationArrangementsChangeInAmountOfContingentConsiderationLiability1>
    <cpix:BusinessCombinationContingentConsiderationEarnedAndAccruedInOperatingExpenses
      contextRef="i34ec3c62de204f83a7f07694bba18e4f_D20230101-20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RhYmxlOjMxYzgwNDNjMGNkYjQ4YmE5ODJkZGZkYWUxMjFiMjE0L3RhYmxlcmFuZ2U6MzFjODA0M2MwY2RiNDhiYTk4MmRkZmRhZTEyMWIyMTRfMTItMS0xLTEtNDU5MDY_bb2924e5-37ef-43a0-9e0b-4fca8b7b6fb9"
      unitRef="usd">188679</cpix:BusinessCombinationContingentConsiderationEarnedAndAccruedInOperatingExpenses>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="i339bfc5c1c8e48d58f19079fc7a04235_I20230331"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RhYmxlOjMxYzgwNDNjMGNkYjQ4YmE5ODJkZGZkYWUxMjFiMjE0L3RhYmxlcmFuZ2U6MzFjODA0M2MwY2RiNDhiYTk4MmRkZmRhZTEyMWIyMTRfMTMtMS0xLTEtNDU5MDY_9787da57-2e6e-4f0a-aa52-a7ebdb87feef"
      unitRef="usd">2500000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiability
      contextRef="i339bfc5c1c8e48d58f19079fc7a04235_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNzIyMw_d0b6f7ea-f38e-4b0d-8b35-10cf36f8efa3"
      unitRef="usd">2500000</us-gaap:BusinessCombinationContingentConsiderationLiability>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent
      contextRef="i339bfc5c1c8e48d58f19079fc7a04235_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNzI0Nw_c2e13cc0-5f5a-49d3-89d0-12562ac9d466"
      unitRef="usd">1300000</us-gaap:BusinessCombinationContingentConsiderationLiabilityCurrent>
    <us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent
      contextRef="i339bfc5c1c8e48d58f19079fc7a04235_I20230331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjA0YzM0MWNkZmFmMTRkYTU5MTExYWU3ZDgxNDJmYTNhL3NlYzowNGMzNDFjZGZhZjE0ZGE1OTExMWFlN2Q4MTQyZmEzYV81OC9mcmFnOmYwMzUwMWExOGIwYjQyZDE5NGFjZjY4NmQzNDFkN2MzL3RleHRyZWdpb246ZjAzNTAxYTE4YjBiNDJkMTk0YWNmNjg2ZDM0MWQ3YzNfNzI3Nw_d57b3f88-5f69-4c10-b0c6-23b1097c1a03"
      unitRef="usd">1200000</us-gaap:BusinessCombinationContingentConsiderationLiabilityNoncurrent>
</xbrl>
