<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:dei="http://xbrl.sec.gov/dei/2021q4"
  xmlns:exdx="http://www.exagen.com/20211231"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:srt="http://fasb.org/srt/2021-01-31"
  xmlns:us-gaap="http://fasb.org/us-gaap/2021-01-31"
  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="exdx-20211231.xsd" xlink:type="simple"/>
    <context id="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i546cb0ba3ecf4ae5bb1f6bf666f9306d_I20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
        </entity>
        <period>
            <instant>2021-06-30</instant>
        </period>
    </context>
    <context id="id6d0c5de35534c0a88cfbc73c3c7f225_I20220318">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
        </entity>
        <period>
            <instant>2022-03-18</instant>
        </period>
    </context>
    <context id="i5e2826961cb54ec09ddf475ab8870832_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i858168a2e3494c15ae78f165b53aa373_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i8edbb555118840b58059eef14558ce92_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ide5c6d88fdb141ec95f925d8963a92a0_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="iab8d6e4d202f421b81c01b4c5a35a2b2_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i363833c90e184550aa172bb627c31cab_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i680f3acf8e474816aff7b5a834f833af_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="ib4e803fd80ef4943adf5544d8744030c_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i78ddddf0df3045138130bd6defd16b87_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i5d88dd927b494ea18e46ef076e86ffdf_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="id520e5928c074e308c357d09ea372fc2_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i3fd4bcbee0314ee69cf3cdc208ed18db_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i175be0c1491e4037a8aa66ad159a0826_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i7d03bb14c79c463082ad2e74f37ac0ad_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i83f67a8b65884362b03514a24998d67e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ibde9061508e5427a8b151f8ea9bcf6c4_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="iadf8a00e14144f4c8686f7b70d0a1ae7_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</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="i3e002795ed934cfd8022d1ab456e514a_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ib7880b5eedf24b53af7971893cdd1910_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</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="ia9c9b2244bcb4a44964b921b1ef2418d_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">exdx:PublicOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i29b84703b0ec486888f253c5eb9e5c4e_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">exdx:PublicOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i43abe6c0e08d4ccd89024daa40929c82_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">exdx:OtherOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i2201bd245521466f8fba4561028c680a_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">exdx:OtherOfferingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i9d99fd99c4a747ecb7f74ee038626db0_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:MedicareMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i7e918df2e25b4dc19a2a72e039187e06_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:MedicareMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ic751586adfa6405b8d274207027a4877_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:MedicareAdvantageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i31cadfa772e043ffb2a417f883b9a59c_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:MedicareAdvantageMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i8e4b341e5bd540eea256a37a11479cf1_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:BlueShieldMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i04ba271a110b411bb0f601c01a26ba6b_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:BlueShieldMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ic7bfee2a83244398ae9e6dcb73a3ea25_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:JanssenSIMPONIMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ief1170f74b8c4ce7a228afaddcc5be1c_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:BlueShieldMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">exdx:ReceivableBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="id08a4b3852c54d3da4c331b43214f89f_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:BlueShieldMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">exdx:ReceivableBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i060448a04148437588aa3aa5fa329f2a_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:UnitedHealthcareMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">exdx:ReceivableBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i875304ba1f344b1dbd88e0c3a64878ac_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:JanssenSIMPONIMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">exdx:ReceivableBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i4a28af0d9119461299e66af2b6201d4d_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:JanssenSIMPONIMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">exdx:ReceivableBenchmarkMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i8e1bd220aa234f8e987f64d0d16e0e86_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">exdx:AVISECTDTestMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i99eabc194bfb48a39a2bb4a8f7d552aa_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">exdx:AVISECTDTestMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:ProductConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="idb276bb9ff144418a778ab273f21c811_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:SupplierConcentrationRiskMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionBySupplierAxis">exdx:TwoSuppliersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i099a8a1452264ff69867c43a0f5c06bd_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:SalesRevenueNetMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:SupplierConcentrationRiskMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ShareBasedGoodsAndNonemployeeServicesTransactionBySupplierAxis">exdx:TwoSuppliersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i9be2ce4664494756b54f075de7b4a5f5_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:HealthcareInsurersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i1a94aa480a9f495b90694cd1cde0f018_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:HealthcareInsurersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i59a8cc8e89e44fda9982eb3773bcd045_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:Government1Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i676ed609f633485ab48853289dc742fa_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:Government1Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i304971fc34904d24a0461de2774f9311_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:ClientMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ib587a9ef13aa4f88b7983576bfa53549_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:ClientMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="id0604cbe79c14ed9875cc3e2c65bf072_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">us-gaap:OtherCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i12188c237ec74c059881074507e5f1ab_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">us-gaap:OtherCustomerMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i0dac58cf4151488d8c5d4fb4b5b13ebc_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:JanssenSIMPONIMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i6ca03d75c5734f4e9de082c43e02745b_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">exdx:JanssenSIMPONIMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="if998625e842c43dfa677fac8cc5d0738_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BalanceSheetLocationAxis">us-gaap:OtherAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i90f5c289a21d4927aa6df81dacfa9a22_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i21ce32c182b1447b86e655f929f23b8a_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ic4f68d682be74db6b008dc3a090b9802_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ieb9528b3f3734591a14281d420582f40_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i7ab31b20cbc349cbaca32f303bd2578a_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="i43718092b0c0471b96ac09a14e1c6587_I20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-06-30</instant>
        </period>
    </context>
    <context id="iddbdea29001e45c1b56260676dc812f4_I20210831">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">exdx:JanssenPromotionAgreementMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-08-31</instant>
        </period>
    </context>
    <context id="ic9bf0012e6c14d8bb64f9c0d82b2c6b0_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">exdx:JanssenSIMPONIMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ia3f9d0fa94ec4ad9816afc3fb4c761b7_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">exdx:JanssenSIMPONIMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i9e983f14f49f48fb88a4fb55c4d4f310_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ShippingAndHandlingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i84e2dc0a1fa34a72abfedd5914668cb3_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:ProductOrServiceAxis">us-gaap:ShippingAndHandlingMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i3da35687856c48539a9dde99b6897fd6_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:WarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i7d544e05fd70453dbd49e33f4f48b614_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:WarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="id4affae0b59b49c7a0a929d85bf9141b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i085d1d0b16694f2f8ef00fbd68444a0c_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:StockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i88c6ac57cfb34afaabadb43d5c0f77bd_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="id9fffc83ea824ff28f77cfcd400a4c86_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="iac6b2d16027a4576a026b904556bdae9_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ibd62756e20844efa8284a88ba74e0e1c_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i3e2b3b6a148c4253996d58d6cd823297_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i7526f391427d45ea873dfa6c626ac805_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i7e2fced401f84d9d855cd68c2a92d495_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">exdx:LaboratoryEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="iad3c4ac47a7044aca08319865f77bce1_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">exdx:LaboratoryEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ib72a58d5918749a8b10696a4c1caf048_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">exdx:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i0d2b410bf1874ce0a832f21534a96236_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">exdx:ComputerEquipmentAndSoftwareMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ifba18aaca8f64d58a5abc8aa3bc55ca0_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i58959814a81948baa356ab8847eaf364_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i1aaefcb00d594d7899f7291e0ab6e87d_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ic38792d5f9cd4daa8e071405abfb7e30_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:ConstructionInProgressMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i31aee7e95be8470386bca9e8ac634e7e_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:AssetsHeldUnderCapitalLeasesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i3c7e1092e0654fca915f791ba0127f14_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:AssetsHeldUnderCapitalLeasesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i78b4e0dd48ec41adac67cf91f4829313_D20170901-20170930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">exdx:Term2017Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">exdx:InnovatusLifeSciencesLendingFundMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-09-01</startDate>
            <endDate>2017-09-30</endDate>
        </period>
    </context>
    <context id="ic5e491d1e0c84469a851fc6488ec0b8d_D20170901-20170930">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">exdx:CapitalRoyaltyPartnersIILPMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2017-09-01</startDate>
            <endDate>2017-09-30</endDate>
        </period>
    </context>
    <context id="ic374501898604ac3b21a9eb9d1aa4bed_D20181207-20181207">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">exdx:Term2017Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">exdx:InnovatusLifeSciencesLendingFundMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2018-12-07</startDate>
            <endDate>2018-12-07</endDate>
        </period>
    </context>
    <context id="i1b932771aa594f01b45eced9775796ed_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">exdx:Term2017Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">exdx:InnovatusLifeSciencesLendingFundMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ied70bd75f96a43a5baf481fe236d34cf_I20211130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">exdx:Term2017Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">exdx:InnovatusLifeSciencesLendingFundMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-11-30</instant>
        </period>
    </context>
    <context id="ib2d7ce72995e47d988b87dc3166f65be_D20211101-20211130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">exdx:Term2017Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">exdx:InnovatusLifeSciencesLendingFundMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-11-01</startDate>
            <endDate>2021-11-30</endDate>
        </period>
    </context>
    <context id="i0ccafb2121ef4525b08aab3e4af52bee_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">exdx:Term2017Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">exdx:InnovatusLifeSciencesLendingFundMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LoansPayableMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i0e9c8fd61fe64b3a9e2fd6694212ae29_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">exdx:Term2017Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">exdx:InnovatusLifeSciencesLendingFundMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:PaymentInKindPIKNoteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i5613ccef45fa43c68c638c563733b8a5_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">exdx:Term2017Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">exdx:InnovatusLifeSciencesLendingFundMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:PaymentInKindPIKNoteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i0d1202d21f8740ee98fa61d24c81483e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="exdx:RentalPropertyByTypeAxis">exdx:OfficeAndLaboratoryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="iafeeb227b76e4b249f9a3f38443686d8_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="exdx:RentalPropertyByTypeAxis">exdx:OfficeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i366a155531cb4fbea6c2f6533d2d2ca9_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">exdx:PrometheusLaboratoriesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ibc597536bb884ea9936d1a1244d27e61_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">exdx:PrometheusLaboratoriesIncMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i05b6fb9c29d74217afc5f3390a9b3139_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">exdx:PrometheusLaboratoriesIncMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ie1b25960c2884eb7901b36fc403c5bcf_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">us-gaap:LicenseAgreementTermsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i64b7d048a599429db92aa5f65e5ba72a_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">us-gaap:LicenseAgreementTermsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i6deaabe305214817bd74cf6cd4c0b35d_D20210501-20210531">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">exdx:AlleghenyHealthNetworkResearchInstituteMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">us-gaap:LicenseAgreementTermsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-05-31</endDate>
        </period>
    </context>
    <context id="i912faed70c5a4fd581a9703d24a89331_D20211101-20211130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">exdx:QueenMaryUniversityOfLondonMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ResearchAndDevelopmentArrangementContractToPerformForOthersByTypeAxis">us-gaap:LicenseAgreementTermsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-11-01</startDate>
            <endDate>2021-11-30</endDate>
        </period>
    </context>
    <context id="ia5e9cfbf31b3443e8621d3fdf0dca027_D20211101-20211130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
        </entity>
        <period>
            <startDate>2021-11-01</startDate>
            <endDate>2021-11-30</endDate>
        </period>
    </context>
    <context id="iaf6dd19b55ad47bc93d42a9942cfa94b_D20210501-20210531">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">exdx:AlleghenyHealthNetworkResearchInstituteMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-05-01</startDate>
            <endDate>2021-05-31</endDate>
        </period>
    </context>
    <context id="if0b797c2a4eb440ab15ab3cf34b4f976_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TypeOfArrangementAxis">exdx:AHNCollaborationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ie894c9ee2efa4fccb2bbf8bf12db40c7_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ie4a3176e43194a079cc377cf1a233236_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="if0a71a58aad54b9fb066ade3ade39a99_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i50936103a58446d7aca2769c3a4b770d_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i86ec71f3ddf34c5c9d905f8cbfddcbd0_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i61ced3118ccb48baa10e17dbefe16c12_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i7cdf3133b3fd471789d770d99cf689a5_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="id0f9ae26184942f895fb239cc86b0f37_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i1f80b058c94a442cb50e7f29af389136_D20201110-20201110">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-11-10</startDate>
            <endDate>2020-11-10</endDate>
        </period>
    </context>
    <context id="i4737652479c54daf8b2935ae5d4abf07_D20210325-20210325">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-03-25</startDate>
            <endDate>2021-03-25</endDate>
        </period>
    </context>
    <context id="i818303aea365411da84f8d036d673178_I20210325">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-03-25</instant>
        </period>
    </context>
    <context id="i2c183273fad14e45a7c6d64d951ffc7e_D20210622-20210622">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">exdx:ExchangingStockholdersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-06-22</startDate>
            <endDate>2021-06-22</endDate>
        </period>
    </context>
    <context id="if67fb3139548459d95830c344b373e11_I20210622">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">exdx:ExchangingStockholdersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-06-22</instant>
        </period>
    </context>
    <context id="i113fe52cf58445c9abd2ed69758419c8_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:CounterpartyNameAxis">exdx:ExchangingStockholdersMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="icdc158f313e1442b96f7a482d42db0fb_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">exdx:ExpirationJan192026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i30757d31047c44909b6feb4c9ef7d1a8_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">exdx:ExpirationMar312026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="id6c5f8461d1e44d2bae8c883ad51fdce_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">exdx:ExpirationApr12026Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i84ebd9ad1b0e443faa73129db5c3410d_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">exdx:ExpirationSep72024Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="iaa6988d0ef1a47e78b41a5feae043dd1_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">exdx:ExpirationDec72025Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ia550410464574c309a628bd18a3a148f_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ClassOfWarrantOrRightAxis">exdx:NoExpirationMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i8a2e6fb2763d49bdb50c3a4b25301d4f_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">exdx:IncentiveAwardPlan2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i788616046c1b40228a96903acbd736a9_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">exdx:IncentiveAwardPlan2019Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i57d34c22b43d4105ac768ab42670c108_I20220101">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:PlanNameAxis">exdx:IncentiveAwardPlan2019Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-01</instant>
        </period>
    </context>
    <context id="i003268fd55904f4394658b449da44cbe_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i34e8a4acc0dd4c82813e62446f33c84b_I20220101">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-01-01</instant>
        </period>
    </context>
    <context id="i32a51ce8dcbf4ec8b9f063adfc896c85_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ia8262400b5eb40cdbb00b7fa41ab8129_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="iaf75a6ebdd6f462cbbaf4089099cad0f_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="if0c8b4d943304e29958d97963bd17840_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ib1a3cd65afaf406c9ff45b454c74f584_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i9d16e908b3b940e68785cde3a05b8f93_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ia4ce2d5a6af74d16a3bf28bfdd27c368_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i685d4d8cd63747969fb91ab6335ffb82_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i6a416f8219184609a604b19e6cb5cd69_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i12bf48e36a6043ef91054779ae1e3404_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i1db4a411e10f4d64bbf2c9d4fb0491ae_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ie0791c30689544f182cfe5da26dd1d5f_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ifbeb0aa50fcc4ffda8c0fc15cbabaf81_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="if8210fd199e249fa848620ceb0493c8a_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ieef7d157745f4029a5cfd0c8ea9a498c_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingGeneralAndAdministrativeExpensesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i8ca5817939864e2c9823a4874cd4909c_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i840edcf7a39843ed9b99c68985958ee9_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i512f1f704a30420fa5828634e2d0eb13_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:WarrantMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i8cc1ec6f21af4a7db857c1045751bf34_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i066fc05efc394c5299ec2dfbe051952e_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">exdx:CommonSharesAvailableForGrantUnderThe2019PlanMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="if18ebc8c76b74d3f9c1691fb6f2f7622_D20220101-20220101">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-01-01</endDate>
        </period>
    </context>
    <context id="ib97a43d8fd644b68ad6b548b7d06907b_D20200401-20200430">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
        </entity>
        <period>
            <startDate>2020-04-01</startDate>
            <endDate>2020-04-30</endDate>
        </period>
    </context>
    <context id="iddfc9c29c10b46cbae6c40ddefd0b86a_D20200416-20200416">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001274737</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">exdx:PaycheckProtectionProgramCARESActMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-04-16</startDate>
            <endDate>2020-04-16</endDate>
        </period>
    </context>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <unit id="installment">
        <measure>exdx:installment</measure>
    </unit>
    <unit id="segment">
        <measure>exdx:segment</measure>
    </unit>
    <dei:DocumentFiscalYearFocus
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml80L2ZyYWc6NjAzYzMwMmIyYWFjNGFkN2E0NmUxMDlkMDkwZTg1NWQvdGFibGU6ZWEwZDY4NTI4ZjExNGY5NzhkZjQwOTU5ODIyMDYwYjEvdGFibGVyYW5nZTplYTBkNjg1MjhmMTE0Zjk3OGRmNDA5NTk4MjIwNjBiMV81LTEtMS0xLTIxMzUz_77856ebf-0200-4a3b-85b6-5fbec706bb31">2021</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml80L2ZyYWc6NjAzYzMwMmIyYWFjNGFkN2E0NmUxMDlkMDkwZTg1NWQvdGFibGU6ZWEwZDY4NTI4ZjExNGY5NzhkZjQwOTU5ODIyMDYwYjEvdGFibGVyYW5nZTplYTBkNjg1MjhmMTE0Zjk3OGRmNDA5NTk4MjIwNjBiMV82LTEtMS0xLTIxMzUz_c5e58211-79b6-44a2-8b84-c21256514c86">FY</dei:DocumentFiscalPeriodFocus>
    <dei:AmendmentFlag
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml80L2ZyYWc6NjAzYzMwMmIyYWFjNGFkN2E0NmUxMDlkMDkwZTg1NWQvdGFibGU6ZWEwZDY4NTI4ZjExNGY5NzhkZjQwOTU5ODIyMDYwYjEvdGFibGVyYW5nZTplYTBkNjg1MjhmMTE0Zjk3OGRmNDA5NTk4MjIwNjBiMV83LTEtMS0xLTIxMzUz_c582d06a-1805-4654-822d-9ad57e00033f">false</dei:AmendmentFlag>
    <dei:EntityCentralIndexKey
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml80L2ZyYWc6NjAzYzMwMmIyYWFjNGFkN2E0NmUxMDlkMDkwZTg1NWQvdGV4dHJlZ2lvbjo2MDNjMzAyYjJhYWM0YWQ3YTQ2ZTEwOWQwOTBlODU1ZF84MA_57aebe32-84f2-46a9-9348-c9e783a05cd4">0001274737</dei:EntityCentralIndexKey>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i90f5c289a21d4927aa6df81dacfa9a22_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzYxOTQ_fef8e41c-9138-4dc9-99a1-0e0d49fa562d">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <dei:DocumentType
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGV4dHJlZ2lvbjpiM2E4OWIzNDYwMTg0ZTcwYTk0NzY0OTBkOTMyYjY2MV84NA_f4d69e28-04cc-4179-8d30-cdac682bb437">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ZDgxMjA3ODQ4MTU4NDg5M2FhMmRhOTIyYjIwZWEyZWIvdGFibGVyYW5nZTpkODEyMDc4NDgxNTg0ODkzYWEyZGE5MjJiMjBlYTJlYl8xLTAtMS0xLTIxMzUz_1538634a-89c5-4110-bd49-6ef2ad337d28">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ZDgxMjA3ODQ4MTU4NDg5M2FhMmRhOTIyYjIwZWEyZWIvdGFibGVyYW5nZTpkODEyMDc4NDgxNTg0ODkzYWEyZGE5MjJiMjBlYTJlYl8yLTAtMS0xLTIxMzUzL3RleHRyZWdpb246YmQzNTNjMWE0YTJjNDAxZjg4MmJjNTE4YTgxMDg0ZjdfMzA_e1b8f169-6ea0-4445-91fd-775dd0fb4c60">2021-12-31</dei:DocumentPeriodEndDate>
    <dei:CurrentFiscalYearEndDate
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ZDgxMjA3ODQ4MTU4NDg5M2FhMmRhOTIyYjIwZWEyZWIvdGFibGVyYW5nZTpkODEyMDc4NDgxNTg0ODkzYWEyZGE5MjJiMjBlYTJlYl8yLTAtMS0xLTIxMzUzL3RleHRyZWdpb246YmQzNTNjMWE0YTJjNDAxZjg4MmJjNTE4YTgxMDg0ZjdfMzA_5681a0b8-faf7-4714-9183-6350ee58cbf1">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentTransitionReport
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ZDgxMjA3ODQ4MTU4NDg5M2FhMmRhOTIyYjIwZWEyZWIvdGFibGVyYW5nZTpkODEyMDc4NDgxNTg0ODkzYWEyZGE5MjJiMjBlYTJlYl8zLTAtMS0xLTIxMzUz_f9871d52-d4af-4d5e-aff6-b4f3fbb0adb7">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGV4dHJlZ2lvbjpiM2E4OWIzNDYwMTg0ZTcwYTk0NzY0OTBkOTMyYjY2MV8xNzQ_3ea8e279-f19e-4e64-b72e-1b80f13af31f">001-39049</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGV4dHJlZ2lvbjpiM2E4OWIzNDYwMTg0ZTcwYTk0NzY0OTBkOTMyYjY2MV8xNzk_7d50d281-03e7-4e28-806f-0441c46dee4e">EXAGEN INC.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ZDJiNzRhZjEwYzYwNGRhZjkyYzg2OGFmZDY3M2Q1NGEvdGFibGVyYW5nZTpkMmI3NGFmMTBjNjA0ZGFmOTJjODY4YWZkNjczZDU0YV8wLTAtMS0xLTIxMzUz_447f4e7c-9553-4aa7-9daf-8f6fd1840700">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ZDJiNzRhZjEwYzYwNGRhZjkyYzg2OGFmZDY3M2Q1NGEvdGFibGVyYW5nZTpkMmI3NGFmMTBjNjA0ZGFmOTJjODY4YWZkNjczZDU0YV8wLTYtMS0xLTIxMzUz_0e93d367-3bd3-49f0-97b4-7da96d10a031">20-0434866</dei:EntityTaxIdentificationNumber>
    <dei:EntityAddressAddressLine1
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ZDJiNzRhZjEwYzYwNGRhZjkyYzg2OGFmZDY3M2Q1NGEvdGFibGVyYW5nZTpkMmI3NGFmMTBjNjA0ZGFmOTJjODY4YWZkNjczZDU0YV8zLTEtMS0xLTIxMzUz_d64e6772-ff15-476b-be7f-5c7605195c24">1261 Liberty Way</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ZDJiNzRhZjEwYzYwNGRhZjkyYzg2OGFmZDY3M2Q1NGEvdGFibGVyYW5nZTpkMmI3NGFmMTBjNjA0ZGFmOTJjODY4YWZkNjczZDU0YV80LTEtMS0xLTIxMzUz_e7f3957d-daa8-49c0-b3fa-1cf3bd5855cb">Vista</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ZDJiNzRhZjEwYzYwNGRhZjkyYzg2OGFmZDY3M2Q1NGEvdGFibGVyYW5nZTpkMmI3NGFmMTBjNjA0ZGFmOTJjODY4YWZkNjczZDU0YV80LTItMS0xLTIxMzUz_184d4738-7820-48b6-b606-9c9f92336cb9">CA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ZDJiNzRhZjEwYzYwNGRhZjkyYzg2OGFmZDY3M2Q1NGEvdGFibGVyYW5nZTpkMmI3NGFmMTBjNjA0ZGFmOTJjODY4YWZkNjczZDU0YV80LTYtMS0xLTIxMzUz_dd962044-14cc-4e5a-a01d-f2ca28b32073">92081</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ODAxOWRkZjNkMThkNDEzMjhlZWNkYzNiN2Q2ZmNlZjAvdGFibGVyYW5nZTo4MDE5ZGRmM2QxOGQ0MTMyOGVlY2RjM2I3ZDZmY2VmMF8wLTAtMS0xLTIxMzUz_1c4a167b-f43b-46cc-8e43-bf2f10f3abdd">(760)</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ODAxOWRkZjNkMThkNDEzMjhlZWNkYzNiN2Q2ZmNlZjAvdGFibGVyYW5nZTo4MDE5ZGRmM2QxOGQ0MTMyOGVlY2RjM2I3ZDZmY2VmMF8wLTEtMS0xLTIxMzUz_c71e545f-38c5-491f-9754-57b98cb2969e">560-1501</dei:LocalPhoneNumber>
    <dei:Security12bTitle
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6OWYxZjA4NjgwZWFhNDAxOWI2MGY0MmUyMTc1OWZjODgvdGFibGVyYW5nZTo5ZjFmMDg2ODBlYWE0MDE5YjYwZjQyZTIxNzU5ZmM4OF8xLTAtMS0xLTIxMzUz_34d3c76e-5cf7-4882-a376-0f848f6fd95b">Common Stock, par value $0.001 per share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6OWYxZjA4NjgwZWFhNDAxOWI2MGY0MmUyMTc1OWZjODgvdGFibGVyYW5nZTo5ZjFmMDg2ODBlYWE0MDE5YjYwZjQyZTIxNzU5ZmM4OF8xLTItMS0xLTIxMzUz_b3dee2b9-b917-4a6e-b421-ab6b47c2c6ef">XGN</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6OWYxZjA4NjgwZWFhNDAxOWI2MGY0MmUyMTc1OWZjODgvdGFibGVyYW5nZTo5ZjFmMDg2ODBlYWE0MDE5YjYwZjQyZTIxNzU5ZmM4OF8xLTQtMS0xLTIxMzUz_53d3e6e0-bc86-4457-9dd7-f5a32c9b24ae">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGV4dHJlZ2lvbjpiM2E4OWIzNDYwMTg0ZTcwYTk0NzY0OTBkOTMyYjY2MV8zMTU2_8ec26f01-aa5e-4720-bd8d-515f91088dc2">No</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGV4dHJlZ2lvbjpiM2E4OWIzNDYwMTg0ZTcwYTk0NzY0OTBkOTMyYjY2MV8zMTU3_6fc09682-16fe-409f-8b56-95b3bbc1ed8b">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGV4dHJlZ2lvbjpiM2E4OWIzNDYwMTg0ZTcwYTk0NzY0OTBkOTMyYjY2MV85Nzk_faa9db74-1ac1-4298-bfa4-ace662c15a14">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGV4dHJlZ2lvbjpiM2E4OWIzNDYwMTg0ZTcwYTk0NzY0OTBkOTMyYjY2MV8xMjgx_1847f3b9-b59b-460d-a509-86a55c3241ed">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ZmU4NDk4NTAzMWYwNGVlNzhjNzliYjhmMzZlYjlhMDIvdGFibGVyYW5nZTpmZTg0OTg1MDMxZjA0ZWU3OGM3OWJiOGYzNmViOWEwMl8yLTAtMS0xLTIxMzUz_b97cffe9-be47-47fe-9675-6c69f116866d">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ZmU4NDk4NTAzMWYwNGVlNzhjNzliYjhmMzZlYjlhMDIvdGFibGVyYW5nZTpmZTg0OTg1MDMxZjA0ZWU3OGM3OWJiOGYzNmViOWEwMl8yLTQtMS0xLTIxMzUz_e743cae1-a6f8-450f-b79d-7423a230da8d">true</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGFibGU6ZmU4NDk4NTAzMWYwNGVlNzhjNzliYjhmMzZlYjlhMDIvdGFibGVyYW5nZTpmZTg0OTg1MDMxZjA0ZWU3OGM3OWJiOGYzNmViOWEwMl80LTQtMS0xLTIxMzUz_078aa1b5-8b66-44cd-a2ff-783787f0b8fb">true</dei:EntityEmergingGrowthCompany>
    <dei:EntityExTransitionPeriod
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGV4dHJlZ2lvbjpiM2E4OWIzNDYwMTg0ZTcwYTk0NzY0OTBkOTMyYjY2MV8xOTE2_e424da3c-6c2b-451e-93f0-0b8d8b45c740">false</dei:EntityExTransitionPeriod>
    <dei:IcfrAuditorAttestationFlag
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGV4dHJlZ2lvbjpiM2E4OWIzNDYwMTg0ZTcwYTk0NzY0OTBkOTMyYjY2MV8zMTU4_c8f9f451-cda8-4641-a406-2abe0bae18d6">false</dei:IcfrAuditorAttestationFlag>
    <dei:EntityShellCompany
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGV4dHJlZ2lvbjpiM2E4OWIzNDYwMTg0ZTcwYTk0NzY0OTBkOTMyYjY2MV8yMzcz_b5e59d78-98ad-4139-9c5c-3d2d5ed40311">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat
      contextRef="i546cb0ba3ecf4ae5bb1f6bf666f9306d_I20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGV4dHJlZ2lvbjpiM2E4OWIzNDYwMTg0ZTcwYTk0NzY0OTBkOTMyYjY2MV8yNjEx_2a8b8982-1354-4cf0-89a1-e4cb18949de8"
      unitRef="usd">158300000</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="id6d0c5de35534c0a88cfbc73c3c7f225_I20220318"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGV4dHJlZ2lvbjpiM2E4OWIzNDYwMTg0ZTcwYTk0NzY0OTBkOTMyYjY2MV8xMDk5NTExNjMwOTY0_4df379b8-cb3a-4649-a81a-29765059200e"
      unitRef="shares">16231198</dei:EntityCommonStockSharesOutstanding>
    <dei:DocumentsIncorporatedByReferenceTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xL2ZyYWc6YjNhODliMzQ2MDE4NGU3MGE5NDc2NDkwZDkzMmI2NjEvdGV4dHJlZ2lvbjpiM2E4OWIzNDYwMTg0ZTcwYTk0NzY0OTBkOTMyYjY2MV8zMTU5_c3fdacc3-16f5-4d20-90cf-f5b66b6ad2c0">Certain information required to be disclosed in Part III of this report is incorporated by reference from the registrant's definitive Proxy Statement for the 2022 Annual Meeting of Stockholders, which proxy statement will be filed not later than 120 days after the end of the fiscal year covered by this Form 10-K.</dei:DocumentsIncorporatedByReferenceTextBlock>
    <dei:AuditorFirmId
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml84NS9mcmFnOjUzNzgwZjgxZWExYjQyNDFhOTQ2YzM1MTAzZGVkODNiL3RleHRyZWdpb246NTM3ODBmODFlYTFiNDI0MWE5NDZjMzUxMDNkZWQ4M2JfMjE5OTAyMzI1NjA4Mw_52810e0b-5360-4deb-b012-493809253cdd">243</dei:AuditorFirmId>
    <dei:AuditorName
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDAvZnJhZzphOWU0NzYxNTNiNzY0YmQxYjY4OTFiMGRhODA4OTBjYy90ZXh0cmVnaW9uOmE5ZTQ3NjE1M2I3NjRiZDFiNjg5MWIwZGE4MDg5MGNjXzIxOTkwMjMyNTgzMzg_2af0e696-d0fe-4b6c-b890-b00b9b523852">BDO USA, LLP</dei:AuditorName>
    <dei:AuditorLocation
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDAvZnJhZzphOWU0NzYxNTNiNzY0YmQxYjY4OTFiMGRhODA4OTBjYy90ZXh0cmVnaW9uOmE5ZTQ3NjE1M2I3NjRiZDFiNjg5MWIwZGE4MDg5MGNjXzIxOTkwMjMyNTgzMzk_1d830bf4-4db7-4527-b3f4-75f0cfd666b2">San Diego, California</dei:AuditorLocation>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzQtNC0xLTEtMjEzNTM_4cd1af23-df17-48a6-abf9-eeb340accbf7"
      unitRef="usd">99442000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzQtNi0xLTEtMjEzNTM_c0ddbe78-37ba-406e-ba5e-1e04fa711341"
      unitRef="usd">57448000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzUtNC0xLTEtMjEzNTM_2acc08a5-4093-4a52-9e16-0b188cc490fb"
      unitRef="usd">9654000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzUtNi0xLTEtMjEzNTM_fdd57352-9d13-4811-b3e8-16e17b1a5554"
      unitRef="usd">8910000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssets
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzYtNC0xLTEtMjEzNTM_bd40a876-a96f-4282-8841-ba3e182d22c7"
      unitRef="usd">3638000</us-gaap:PrepaidExpenseAndOtherAssets>
    <us-gaap:PrepaidExpenseAndOtherAssets
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzYtNi0xLTEtMjEzNTM_1c415373-4a93-4bb6-b7d2-9f2e3a544510"
      unitRef="usd">4159000</us-gaap:PrepaidExpenseAndOtherAssets>
    <us-gaap:AssetsCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzctNC0xLTEtMjEzNTM_05e5287e-3728-409c-bceb-ef2011f2c892"
      unitRef="usd">112734000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzctNi0xLTEtMjEzNTM_9c667d68-e185-44df-95b1-210cc70abe51"
      unitRef="usd">70517000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzgtNC0xLTEtMjEzNTM_ca912fb7-8d3e-4465-acf9-54418f7680b9"
      unitRef="usd">4772000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzgtNi0xLTEtMjEzNTM_39c16544-efde-4970-a5b5-ea668d88eaf0"
      unitRef="usd">2102000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:Goodwill
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzktNC0xLTEtMjEzNTM_18594c80-c1c2-4486-a1ce-5e7688036212"
      unitRef="usd">5506000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzktNi0xLTEtMjEzNTM_6f047878-7875-4f0d-8b0a-900ac959b20c"
      unitRef="usd">5506000</us-gaap:Goodwill>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzEwLTQtMS0xLTIxMzUz_5a4cd6ba-e7b9-4691-9ed5-a9cfc659172e"
      unitRef="usd">433000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzEwLTYtMS0xLTIxMzUz_38a5ea45-f96b-450e-a0b9-897196713acd"
      unitRef="usd">250000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzExLTQtMS0xLTIxMzUz_28e0451b-3063-40cc-be8b-a4dc936edbe8"
      unitRef="usd">123445000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzExLTYtMS0xLTIxMzUz_f5ae3b9c-7085-48a9-bba1-d0e323e7c91c"
      unitRef="usd">78375000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzE0LTQtMS0xLTIxMzUz_3a626aba-cb43-44c2-914d-86debf117925"
      unitRef="usd">2492000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzE0LTYtMS0xLTIxMzUz_ca793809-635c-42a7-b20e-89059532e6b1"
      unitRef="usd">3014000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzE1LTQtMS0xLTIxMzUz_fd6bad63-a80f-49d2-9639-b12dad968ed8"
      unitRef="usd">6826000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzE1LTYtMS0xLTIxMzUz_55cc60f4-23b1-4593-bf90-c83b4370e7ee"
      unitRef="usd">5757000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzE3LTQtMS0xLTIxMzUz_9715f1ff-82f4-4cbf-8d9f-16fa632966d7"
      unitRef="usd">9318000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzE3LTYtMS0xLTIxMzUz_f6166f0c-9326-49d8-842b-21ab30270891"
      unitRef="usd">8771000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzE4LTQtMS0xLTIxMzUz_847831d5-6b02-40e4-8ba4-39cfb233819e"
      unitRef="usd">27478000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:LongTermDebtNoncurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzE4LTYtMS0xLTIxMzUz_8cdb7bec-5326-4405-9dc9-7b086c36c82f"
      unitRef="usd">26659000</us-gaap:LongTermDebtNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzIwLTQtMS0xLTIxMzUz_dd21af15-eb20-4252-b966-70ccfd7fd811"
      unitRef="usd">306000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzIwLTYtMS0xLTIxMzUz_0ff6900a-707a-4b2e-bd29-9e3c3d374923"
      unitRef="usd">158000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzIxLTQtMS0xLTIxMzUz_10da71f7-5d01-432b-8edf-ebb48ea2b72f"
      unitRef="usd">1407000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzIxLTYtMS0xLTIxMzUz_161bff13-2740-451e-aca1-cc4a3c559c45"
      unitRef="usd">948000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzIyLTQtMS0xLTIxMzUz_739bd603-5c6f-48d1-98d4-145ac0d9d1dd"
      unitRef="usd">38509000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzIyLTYtMS0xLTIxMzUz_2bebd7f8-3b00-4a37-914f-81649a1eb2d1"
      unitRef="usd">36536000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzIzLTQtMS0xLTIxMzUz_c96c28df-cb74-4089-a773-9c961a4257fe"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzIzLTYtMS0xLTIxMzUz_927b391e-f827-4522-a754-70ff9b95930a"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI2LTAtMS0xLTIxMzUzL3RleHRyZWdpb246ODNmZTQ3OTNhZGFiNGQ1MThlNzFiMDEzODg1MjIwYzlfMjE_26913435-80b9-4d93-8bf2-57e47334c848"
      unitRef="usdPerShare">0.001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI2LTAtMS0xLTIxMzUzL3RleHRyZWdpb246ODNmZTQ3OTNhZGFiNGQ1MThlNzFiMDEzODg1MjIwYzlfMjE_dc0de4aa-70b0-4989-aba4-3a74fb1f09c7"
      unitRef="usdPerShare">0.001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI2LTAtMS0xLTIxMzUzL3RleHRyZWdpb246ODNmZTQ3OTNhZGFiNGQ1MThlNzFiMDEzODg1MjIwYzlfMzU_9f193fa2-3835-407a-953f-5597990d4cc0"
      unitRef="shares">10000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI2LTAtMS0xLTIxMzUzL3RleHRyZWdpb246ODNmZTQ3OTNhZGFiNGQ1MThlNzFiMDEzODg1MjIwYzlfMzU_d5232a44-a9c9-4fed-a445-118fa2d6c501"
      unitRef="shares">10000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI2LTAtMS0xLTIxMzUzL3RleHRyZWdpb246ODNmZTQ3OTNhZGFiNGQ1MThlNzFiMDEzODg1MjIwYzlfNTc_151886ef-d70c-410d-a4d1-e1414986e259"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI2LTAtMS0xLTIxMzUzL3RleHRyZWdpb246ODNmZTQ3OTNhZGFiNGQ1MThlNzFiMDEzODg1MjIwYzlfNTc_3c2bf903-ac26-47b0-9c8a-0447b73f5cc0"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI2LTAtMS0xLTIxMzUzL3RleHRyZWdpb246ODNmZTQ3OTNhZGFiNGQ1MThlNzFiMDEzODg1MjIwYzlfNTc_d16bf6c1-7391-4140-af2c-1470519d4845"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI2LTAtMS0xLTIxMzUzL3RleHRyZWdpb246ODNmZTQ3OTNhZGFiNGQ1MThlNzFiMDEzODg1MjIwYzlfNTc_ee77dbe6-c4ff-4cea-ab13-1019a7221433"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockValue
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI2LTQtMS0xLTIxMzUz_9c94e85a-a246-4d8e-9f1f-49336dc91805"
      unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI2LTYtMS0xLTIxMzUz_799590ac-788f-4ba5-ac3b-cf56b09f032c"
      unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI3LTAtMS0xLTIxMzUzL3RleHRyZWdpb246OTEyMmQ4MzZmMjVhNGRhY2JkMTkwMjEyODUwYWI5OWNfMTg_55dab3a3-6fd7-497c-b1b9-8c1992a5ef70"
      unitRef="usdPerShare">0.001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI3LTAtMS0xLTIxMzUzL3RleHRyZWdpb246OTEyMmQ4MzZmMjVhNGRhY2JkMTkwMjEyODUwYWI5OWNfMTg_60903d9d-f854-47e3-a1f7-96df16f539c1"
      unitRef="usdPerShare">0.001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI3LTAtMS0xLTIxMzUzL3RleHRyZWdpb246OTEyMmQ4MzZmMjVhNGRhY2JkMTkwMjEyODUwYWI5OWNfMzI_00f6aae5-39a3-4a18-b2a2-fff7c5937d5c"
      unitRef="shares">200000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI3LTAtMS0xLTIxMzUzL3RleHRyZWdpb246OTEyMmQ4MzZmMjVhNGRhY2JkMTkwMjEyODUwYWI5OWNfMzI_467c0004-991e-443a-9835-983098ad43db"
      unitRef="shares">200000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI3LTAtMS0xLTIxMzUzL3RleHRyZWdpb246OTEyMmQ4MzZmMjVhNGRhY2JkMTkwMjEyODUwYWI5OWNfNjc_7d3f266e-01ce-41d7-962b-a03aea9da5ca"
      unitRef="shares">16164994</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI3LTAtMS0xLTIxMzUzL3RleHRyZWdpb246OTEyMmQ4MzZmMjVhNGRhY2JkMTkwMjEyODUwYWI5OWNfNjc_d22fa8e3-b52c-4e2e-b33a-b0a4efa5f999"
      unitRef="shares">16164994</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesIssued
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI3LTAtMS0xLTIxMzUzL3RleHRyZWdpb246OTEyMmQ4MzZmMjVhNGRhY2JkMTkwMjEyODUwYWI5OWNfNzQ_ba642c97-223e-4e73-9cd2-a11fb20efde8"
      unitRef="shares">12652308</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI3LTAtMS0xLTIxMzUzL3RleHRyZWdpb246OTEyMmQ4MzZmMjVhNGRhY2JkMTkwMjEyODUwYWI5OWNfNzQ_d35301f0-b340-4b02-bd51-826aba5b2ce3"
      unitRef="shares">12652308</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI3LTQtMS0xLTIxMzUz_0e493dde-0d94-4629-b874-0f77cd9f09e5"
      unitRef="usd">16000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI3LTYtMS0xLTIxMzUz_8ad3bceb-d93a-4bf7-87c8-dc159f2a7784"
      unitRef="usd">13000</us-gaap:CommonStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI4LTQtMS0xLTIxMzUz_8dfbc64e-68a3-44c2-8b57-3e1571d8162a"
      unitRef="usd">293060000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI4LTYtMS0xLTIxMzUz_8f6f32d4-3a17-4d80-b9ad-f73bd2148813"
      unitRef="usd">223115000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI5LTQtMS0xLTIxMzUz_e4a7a0fe-ef4e-465a-8426-9e00c358ea5c"
      unitRef="usd">-208140000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzI5LTYtMS0xLTIxMzUz_3f7e29f5-814e-4d82-9f12-7d896922e315"
      unitRef="usd">-181289000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzMwLTQtMS0xLTIxMzUz_91d79e9b-4d4a-4777-b162-c39e5e4d08ce"
      unitRef="usd">84936000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzMwLTYtMS0xLTIxMzUz_50311dd1-0268-4381-b042-f56ffd4958d1"
      unitRef="usd">41839000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzMxLTQtMS0xLTIxMzUz_8c3e4ad9-0e3f-4571-921b-7dc9e5e6d375"
      unitRef="usd">123445000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDMvZnJhZzpmMDg5MTA4YjRhZDE0YTI3OTFlMmFiNmEyOTA1YWU3YS90YWJsZTowZjMzYmMwOTBiZTA0ZmU1OGFiNTZjOTgyYmFlMDFkNC90YWJsZXJhbmdlOjBmMzNiYzA5MGJlMDRmZTU4YWI1NmM5ODJiYWUwMWQ0XzMxLTYtMS0xLTIxMzUz_a09ffc25-6e7c-4243-ae63-8affa53830cc"
      unitRef="usd">78375000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzMtNi0xLTEtMjEzNTM_c28ad943-d0e7-4c3d-bcde-e00264d389ba"
      unitRef="usd">48299000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzMtOC0xLTEtMjEzNTM_0ef7e9de-960d-4e12-bcce-f7316fc27911"
      unitRef="usd">41975000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzUtNi0xLTEtMjEzNTM_883f24d8-ad42-45a1-89c9-4524063f3ed1"
      unitRef="usd">20588000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzUtOC0xLTEtMjEzNTM_f8d87fd7-4a31-4ccd-b61f-0595e885c63a"
      unitRef="usd">16559000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzYtNi0xLTEtMjEzNTM_0731723c-44cd-419c-9130-6d040b7f8d60"
      unitRef="usd">44541000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:SellingGeneralAndAdministrativeExpense
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzYtOC0xLTEtMjEzNTM_34dee32f-9bdf-422b-adc5-9f34742f8cf4"
      unitRef="usd">37033000</us-gaap:SellingGeneralAndAdministrativeExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzctNi0xLTEtMjEzNTM_5235fc79-0303-4fb7-9018-c487aaa32d6c"
      unitRef="usd">7237000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzctOC0xLTEtMjEzNTM_d58df2ab-da8a-400d-80df-28e345ab55ce"
      unitRef="usd">3568000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:CostsAndExpenses
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzEwLTYtMS0xLTIxMzUz_c3cf9ac3-c595-4bca-8072-66755eb100c0"
      unitRef="usd">72366000</us-gaap:CostsAndExpenses>
    <us-gaap:CostsAndExpenses
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzEwLTgtMS0xLTIxMzUz_c860184d-ce3a-4e0e-b3f3-a3f38ce48cad"
      unitRef="usd">57160000</us-gaap:CostsAndExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzExLTYtMS0xLTIxMzUz_9af229bf-db6e-48c9-a7a5-917623938036"
      unitRef="usd">-24067000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzExLTgtMS0xLTIxMzUz_29ca660c-fd1f-4437-b083-9045842352b8"
      unitRef="usd">-15185000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InterestExpense
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzEyLTYtMS0xLTIxMzUz_839a99a0-eb88-4aaf-b82c-532b0f3c7427"
      unitRef="usd">2625000</us-gaap:InterestExpense>
    <us-gaap:InterestExpense
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzEyLTgtMS0xLTIxMzUz_52ead087-5052-4b3e-b791-ef39a5c9af68"
      unitRef="usd">2565000</us-gaap:InterestExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzE0LTYtMS0xLTIxMzUz_b09f19e2-f512-4953-ae86-767bfdf84977"
      unitRef="usd">16000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzE0LTgtMS0xLTIxMzUz_b6d467fc-20f3-4f8b-aec6-ad85d03f8347"
      unitRef="usd">984000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:IncomeLossAttributableToParent
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzE1LTYtMS0xLTIxMzUz_613e4cfb-6a69-41a1-a154-29c4d7f3eeff"
      unitRef="usd">-26676000</us-gaap:IncomeLossAttributableToParent>
    <us-gaap:IncomeLossAttributableToParent
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzE1LTgtMS0xLTIxMzUz_4a905198-f488-4ea1-8a09-5138dfbe2778"
      unitRef="usd">-16766000</us-gaap:IncomeLossAttributableToParent>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzE2LTYtMS0xLTIxMzUz_dc6a3868-bdb5-4c08-84f7-7019e88f8e7d"
      unitRef="usd">175000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzE2LTgtMS0xLTIxMzUz_a1bee9db-a08b-4dc4-819e-5222949ac286"
      unitRef="usd">-79000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzE3LTYtMS0xLTIxMzUz_bd35eeee-d060-477a-8774-acec3a9dda01"
      unitRef="usd">-26851000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzE3LTgtMS0xLTIxMzUz_615b55f9-1b6e-4bd9-a21f-d6e14e538e92"
      unitRef="usd">-16687000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzIxLTYtMS0xLTIxMzUz_cedd524d-26a2-4638-898a-1423c65eba13"
      unitRef="usdPerShare">-1.68</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzIxLTYtMS0xLTIxMzUz_e48f6b18-446b-4419-9d05-0a23b10b8edb"
      unitRef="usdPerShare">-1.68</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzIxLTgtMS0xLTIxMzUz_414f967a-aee6-4b3b-9186-cf00bf0cf745"
      unitRef="usdPerShare">-1.32</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareBasic
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzIxLTgtMS0xLTIxMzUz_bd2f4058-cd49-4874-813b-b429e8207459"
      unitRef="usdPerShare">-1.32</us-gaap:EarningsPerShareBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzIyLTYtMS0xLTIxMzUz_636d702c-0042-418e-acc4-6ef93113a1dc"
      unitRef="shares">15972256</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzIyLTYtMS0xLTIxMzUz_bfbfd5f8-f8ec-4206-bb38-6645d2a61dfb"
      unitRef="shares">15972256</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzIyLTgtMS0xLTIxMzUz_2524c73c-192c-4204-ae07-f754a15611f6"
      unitRef="shares">12632780</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDYvZnJhZzpiYzRhMGFhYjdhY2Q0ODY4OWIwMjNkM2QyNDQwNTkxYS90YWJsZTpkNzBjZTFiODBkOWY0ZTVjOTZkYjU4ZDExYTQyMjQ1My90YWJsZXJhbmdlOmQ3MGNlMWI4MGQ5ZjRlNWM5NmRiNThkMTFhNDIyNDUzXzIyLTgtMS0xLTIxMzUz_4d400611-d3ca-490d-8cac-147515ee0fed"
      unitRef="shares">12632780</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ide5c6d88fdb141ec95f925d8963a92a0_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzIxLTYtMS0xLTIxMzUz_c90bc5bd-c487-42cf-9576-b3233dea7253"
      unitRef="shares">12560990</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ide5c6d88fdb141ec95f925d8963a92a0_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzIxLTgtMS0xLTIxMzUz_5996ba89-4d69-4af0-80f5-99ee00dc40f3"
      unitRef="usd">13000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iab8d6e4d202f421b81c01b4c5a35a2b2_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzIxLTEwLTEtMS0yMTM1Mw_9649a200-b2f5-4bff-9786-bb8ab7b421a5"
      unitRef="usd">220248000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i363833c90e184550aa172bb627c31cab_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzIxLTEyLTEtMS0yMTM1Mw_c6033aed-976c-419b-86f5-734e9e6ccaf9"
      unitRef="usd">-164602000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i680f3acf8e474816aff7b5a834f833af_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzIxLTE0LTEtMS0yMTM1Mw_2b734d71-befb-48fc-a9ae-3f6ff35c6de3"
      unitRef="usd">55659000</us-gaap:StockholdersEquity>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="ib4e803fd80ef4943adf5544d8744030c_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzIyLTYtMS0xLTIxMzUz_3e6e27ba-045b-47bf-afd2-6964ef0f0bda"
      unitRef="shares">47549</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i78ddddf0df3045138130bd6defd16b87_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzIyLTEwLTEtMS0yMTM1Mw_315f7272-825a-4cc9-967d-e51e499ec766"
      unitRef="usd">13000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzIyLTE0LTEtMS0yMTM1Mw_0e5cc21c-0244-4c59-8a66-4e669b5dcd73"
      unitRef="usd">13000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="ib4e803fd80ef4943adf5544d8744030c_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzIzLTYtMS0xLTIxMzUz_fc5ce3ac-f591-430c-a76b-24eb319d7634"
      unitRef="shares">11649</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="i78ddddf0df3045138130bd6defd16b87_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzIzLTEwLTEtMS0yMTM1Mw_234aba9f-dfa6-42ef-b715-17e6972587b0"
      unitRef="usd">142000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzIzLTE0LTEtMS0yMTM1Mw_6e0bd500-603d-4a63-b3b0-17dd2e4bea09"
      unitRef="usd">142000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i78ddddf0df3045138130bd6defd16b87_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI0LTEwLTEtMS0yMTM1Mw_40076eb1-6cf3-4dd6-af5a-24c918d8effe"
      unitRef="usd">2694000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI0LTE0LTEtMS0yMTM1Mw_70e75085-0834-421c-a828-748fe039e67b"
      unitRef="usd">2694000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <exdx:StockIssuedDuringPeriodSharesWarrantsExercisedNet
      contextRef="ib4e803fd80ef4943adf5544d8744030c_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI1LTYtMS0xLTIxMzUz_f61be936-4778-4894-9b75-fb0e1c43527a"
      unitRef="shares">32120</exdx:StockIssuedDuringPeriodSharesWarrantsExercisedNet>
    <exdx:StockIssuedDuringPeriodValueWarrantsExercisedNet
      contextRef="i78ddddf0df3045138130bd6defd16b87_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI1LTEwLTEtMS0yMTM1Mw_2179c858-bf49-4723-b98a-f9630b167410"
      unitRef="usd">18000</exdx:StockIssuedDuringPeriodValueWarrantsExercisedNet>
    <exdx:StockIssuedDuringPeriodValueWarrantsExercisedNet
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI1LTE0LTEtMS0yMTM1Mw_00941c6e-20c7-4820-899b-8c7fd4660088"
      unitRef="usd">18000</exdx:StockIssuedDuringPeriodValueWarrantsExercisedNet>
    <us-gaap:NetIncomeLoss
      contextRef="i5d88dd927b494ea18e46ef076e86ffdf_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI2LTEyLTEtMS0yMTM1Mw_41d0d879-65c4-4889-93f8-35cc564786ff"
      unitRef="usd">-16687000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI2LTE0LTEtMS0yMTM1Mw_70acc22b-2f39-4e9d-8007-4d86c7adf647"
      unitRef="usd">-16687000</us-gaap:NetIncomeLoss>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="id520e5928c074e308c357d09ea372fc2_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI3LTYtMS0xLTIxMzUz_a64d88d6-653a-43b0-a020-1025d422cba1"
      unitRef="shares">12652308</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="id520e5928c074e308c357d09ea372fc2_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI3LTgtMS0xLTIxMzUz_ecc268cd-aa64-4902-b709-54d4b3862e06"
      unitRef="usd">13000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i3fd4bcbee0314ee69cf3cdc208ed18db_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI3LTEwLTEtMS0yMTM1Mw_27b9b0d5-56b7-49b2-a894-f940048ecbf5"
      unitRef="usd">223115000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i175be0c1491e4037a8aa66ad159a0826_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI3LTEyLTEtMS0yMTM1Mw_38b001b0-9cb4-45a7-bfac-f7122d80a53c"
      unitRef="usd">-181289000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI3LTE0LTEtMS0yMTM1Mw_ac35b778-8a27-4c57-8361-ff8edf7d7b9c"
      unitRef="usd">41839000</us-gaap:StockholdersEquity>
    <exdx:StockIssuanceCosts
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI4LTAtMS0xLTIzMzcxL3RleHRyZWdpb246MmRlYjU0MmMxOGNkNDdjMTgxMTNkYjI1NTE5YTUyZTBfMTA5OTUxMTYyNzg1NQ_ee0dba6d-f34c-48fb-8a18-ac4152efc06e"
      unitRef="usd">4435000</exdx:StockIssuanceCosts>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="i7d03bb14c79c463082ad2e74f37ac0ad_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI4LTYtMS0xLTIzMzc4_4024fd2a-cae3-455f-a721-95275d1c25f1"
      unitRef="shares">4255000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="i7d03bb14c79c463082ad2e74f37ac0ad_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI4LTgtMS0xLTIzMzc4_9e2e6f57-8f05-4038-b088-02b5928b757e"
      unitRef="usd">4000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="i83f67a8b65884362b03514a24998d67e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI4LTEwLTEtMS0yMzM3OA_ea3600e2-6b92-41b8-8f81-da0eaadb9554"
      unitRef="usd">64705000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI4LTE0LTEtMS0yMzM3OA_bffb1970-dfcc-427d-bfc4-d2ece4d2cbae"
      unitRef="usd">64709000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodShares
      contextRef="i7d03bb14c79c463082ad2e74f37ac0ad_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI5LTYtMS0xLTIzMzc4_0a894631-f3a2-4046-838a-4d70d642f20d"
      unitRef="shares">804951</us-gaap:StockRepurchasedAndRetiredDuringPeriodShares>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="i7d03bb14c79c463082ad2e74f37ac0ad_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI5LTgtMS0xLTIzMzc4_f7ab91ec-972e-4700-88c8-cdc8c25007a9"
      unitRef="usd">1000</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="i83f67a8b65884362b03514a24998d67e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI5LTEwLTEtMS0yMzM3OA_9cd40673-f958-4cb5-9b4d-1731e9ccb9b7"
      unitRef="usd">12774000</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:StockRepurchasedAndRetiredDuringPeriodValue
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzI5LTE0LTEtMS0yMzM3OA_674ee42f-6504-4e94-b86e-f5bd7f321f7a"
      unitRef="usd">12775000</us-gaap:StockRepurchasedAndRetiredDuringPeriodValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued
      contextRef="i83f67a8b65884362b03514a24998d67e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzMwLTEwLTEtMS0yMzM3OA_f9bbd656-582d-429d-abf2-341f118653d8"
      unitRef="usd">12775000</us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzMwLTE0LTEtMS0yMzM3OA_f0b340d7-0626-4f95-9ab9-3fd5d28f5ec5"
      unitRef="usd">12775000</us-gaap:AdjustmentsToAdditionalPaidInCapitalWarrantIssued>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i7d03bb14c79c463082ad2e74f37ac0ad_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzMxLTYtMS0xLTIzMzkz_d1e68651-806a-4c13-a54f-a9713c694f8f"
      unitRef="shares">11950</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i83f67a8b65884362b03514a24998d67e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzMxLTEwLTEtMS0yMzM5Mw_6b585281-9536-4eb9-9d49-a6880632713b"
      unitRef="usd">89000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzMxLTE0LTEtMS0yMzM3OA_5d33b0ce-3919-4dd4-9d64-f59322b458f3"
      unitRef="usd">89000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="i7d03bb14c79c463082ad2e74f37ac0ad_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzMyLTYtMS0xLTIzMzc4_d13829da-9cc9-4c59-be96-bd390ba6e530"
      unitRef="shares">32968</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="i83f67a8b65884362b03514a24998d67e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzMyLTEwLTEtMS0yMzM3OA_0b86bbaf-0474-4621-a1b2-7d22cb7eb16a"
      unitRef="usd">390000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzMyLTE0LTEtMS0yMzM3OA_841abd5e-0bbb-4ff0-b690-a216000fcb14"
      unitRef="usd">390000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i83f67a8b65884362b03514a24998d67e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzMzLTEwLTEtMS0yMzM5Mw_30207dac-5d32-4dc0-b5c4-02dc4ebfcc3a"
      unitRef="usd">4728000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzMzLTE0LTEtMS0yMzM3OA_06969517-274e-4f93-a6c3-375f99c8b64d"
      unitRef="usd">4728000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <exdx:StockIssuedDuringPeriodSharesWarrantsExercisedNet
      contextRef="i7d03bb14c79c463082ad2e74f37ac0ad_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzM0LTYtMS0xLTIzMzc4_291266c2-d511-4883-a45c-9d8be35389a2"
      unitRef="shares">17719</exdx:StockIssuedDuringPeriodSharesWarrantsExercisedNet>
    <exdx:StockIssuedDuringPeriodValueWarrantsExercisedNet
      contextRef="i83f67a8b65884362b03514a24998d67e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzM0LTEwLTEtMS0yMzM3OA_1ad87e16-b1e7-4993-90d0-97f82427ec42"
      unitRef="usd">32000</exdx:StockIssuedDuringPeriodValueWarrantsExercisedNet>
    <exdx:StockIssuedDuringPeriodValueWarrantsExercisedNet
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzM0LTE0LTEtMS0yMzM3OA_24813af9-b3b5-4a12-acc5-f433acd3ee44"
      unitRef="usd">32000</exdx:StockIssuedDuringPeriodValueWarrantsExercisedNet>
    <us-gaap:NetIncomeLoss
      contextRef="ibde9061508e5427a8b151f8ea9bcf6c4_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzM1LTEyLTEtMS0yMzM3OA_f3fbedba-2364-4878-ae4d-31fefd5f9af2"
      unitRef="usd">-26851000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzM1LTE0LTEtMS0yMzM3OA_38ee4d09-10ad-4bfd-99c8-5124583bc69d"
      unitRef="usd">-26851000</us-gaap:NetIncomeLoss>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="iadf8a00e14144f4c8686f7b70d0a1ae7_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzM2LTYtMS0xLTIzMzc4_dcb86930-017f-4528-b727-68ed859c7b6c"
      unitRef="shares">16164994</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="iadf8a00e14144f4c8686f7b70d0a1ae7_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzM2LTgtMS0xLTIzMzc4_96951762-729e-4eea-a7c1-2914f93fb854"
      unitRef="usd">16000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i3e002795ed934cfd8022d1ab456e514a_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzM2LTEwLTEtMS0yMzM3OA_c477c727-f53a-413b-9a4a-c3d39538a2af"
      unitRef="usd">293060000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ib7880b5eedf24b53af7971893cdd1910_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzM2LTEyLTEtMS0yMzM3OA_c3f60399-1f1f-4017-b936-def2184e4846"
      unitRef="usd">-208140000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMDkvZnJhZzozZWE0ZDk1ZTE0OTI0ZmJiYjc2OWRmZjcyODBhYTc0ZC90YWJsZTpjNDEyM2VjYzViYzA0NTBkYjM3NjIzMTQxNzNmMTVlMC90YWJsZXJhbmdlOmM0MTIzZWNjNWJjMDQ1MGRiMzc2MjMxNDE3M2YxNWUwXzM2LTE0LTEtMS0yMzM3OA_a5003742-9aef-4dbe-8523-76709982f5a2"
      unitRef="usd">84936000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQtNi0xLTEtMjEzNTM_0f03e3ce-0bec-49a9-ba67-b873fcfc537c"
      unitRef="usd">-26851000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQtOC0xLTEtMjEzNTM_324de584-92b9-4c5f-9c88-6e29f3490831"
      unitRef="usd">-16687000</us-gaap:NetIncomeLoss>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzYtNi0xLTEtMjEzNTM_9e8a5687-dd17-4d56-ace5-80f176046713"
      unitRef="usd">948000</us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization>
    <us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzYtOC0xLTEtMjEzNTM_e30fff83-98c4-4a71-89ca-177192de03a4"
      unitRef="usd">546000</us-gaap:CostOfGoodsAndServicesSoldDepreciationAndAmortization>
    <us-gaap:AmortizationOfFinancingCostsAndDiscounts
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzctNi0xLTEtMjEzNTM_dacf1d64-fada-4934-94ae-29caa35e7787"
      unitRef="usd">279000</us-gaap:AmortizationOfFinancingCostsAndDiscounts>
    <us-gaap:AmortizationOfFinancingCostsAndDiscounts
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzctOC0xLTEtMjEzNTM_eb6d531b-7d04-4328-b094-bee0b956c461"
      unitRef="usd">274000</us-gaap:AmortizationOfFinancingCostsAndDiscounts>
    <us-gaap:PaidInKindInterest
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzgtNi0xLTEtMjEzNTM_2283715a-470c-42f1-ae0f-b9116cc4e3e6"
      unitRef="usd">540000</us-gaap:PaidInKindInterest>
    <us-gaap:PaidInKindInterest
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzgtOC0xLTEtMjEzNTM_1f977741-e065-40a7-9ef8-d6ac18285e5a"
      unitRef="usd">531000</us-gaap:PaidInKindInterest>
    <us-gaap:DeferredIncomeTaxesAndTaxCredits
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzEwLTYtMS0xLTIxMzUz_569aecec-63f6-4f0c-8cc1-29eee5d2e652"
      unitRef="usd">148000</us-gaap:DeferredIncomeTaxesAndTaxCredits>
    <us-gaap:DeferredIncomeTaxesAndTaxCredits
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzEwLTgtMS0xLTIxMzUz_9a9cf230-ac4c-4e2f-af63-a0ac8da03e7e"
      unitRef="usd">-106000</us-gaap:DeferredIncomeTaxesAndTaxCredits>
    <us-gaap:ShareBasedCompensation
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzEyLTYtMS0xLTIxMzUz_8d70e7c6-8d3d-4b97-b43d-fb1af22590f7"
      unitRef="usd">4728000</us-gaap:ShareBasedCompensation>
    <us-gaap:ShareBasedCompensation
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzEyLTgtMS0xLTIxMzUz_74cfd6d0-d96a-4b24-9408-88bf708024e5"
      unitRef="usd">2694000</us-gaap:ShareBasedCompensation>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzE0LTYtMS0xLTIxMzUz_dd2a9f27-2da6-40f1-8efd-6cf060880444"
      unitRef="usd">744000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzE0LTgtMS0xLTIxMzUz_662dda48-b898-4f57-8a80-10cc64a33fbf"
      unitRef="usd">3195000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <exdx:IncreaseDecreaseInPrepaidExpenseAndCurrentOtherAssets
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzE1LTYtMS0xLTIxMzUz_b233d7c3-0441-443a-a7dc-5758b6ef5483"
      unitRef="usd">-521000</exdx:IncreaseDecreaseInPrepaidExpenseAndCurrentOtherAssets>
    <exdx:IncreaseDecreaseInPrepaidExpenseAndCurrentOtherAssets
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzE1LTgtMS0xLTIxMzUz_756b39de-bc69-43c5-9089-438888466fad"
      unitRef="usd">708000</exdx:IncreaseDecreaseInPrepaidExpenseAndCurrentOtherAssets>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentAssets
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzE2LTYtMS0xLTIxMzUz_dfeb1187-5818-4af9-baac-ec588e2586ed"
      unitRef="usd">167000</us-gaap:IncreaseDecreaseInOtherNoncurrentAssets>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentAssets
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzE2LTgtMS0xLTIxMzUz_d9af982b-2de5-479a-b8bc-90a29073defe"
      unitRef="usd">15000</us-gaap:IncreaseDecreaseInOtherNoncurrentAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzE3LTYtMS0xLTIxMzUz_ce685025-d830-438e-b33e-c98c10bb3c11"
      unitRef="usd">-655000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzE3LTgtMS0xLTIxMzUz_5f0e18fc-1d0a-4296-a5b8-3d02e9f36e24"
      unitRef="usd">986000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzE4LTYtMS0xLTIxMzUz_18252bbd-d1d8-4629-9540-77c657b27f51"
      unitRef="usd">984000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzE4LTgtMS0xLTIxMzUz_6f14117d-13c0-4062-8f93-b6a9bc028956"
      unitRef="usd">1596000</us-gaap:IncreaseDecreaseInAccruedLiabilitiesAndOtherOperatingLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzIwLTYtMS0xLTIxMzUz_9e2702dd-63c5-4d04-a235-dd89c0550f8b"
      unitRef="usd">-20269000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzIwLTgtMS0xLTIxMzUz_a244912f-cb63-480c-a96c-d2095d453250"
      unitRef="usd">-14084000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzIyLTYtMS0xLTIxMzUz_50ef210f-2bc4-405b-bf38-da47507231d0"
      unitRef="usd">2370000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzIyLTgtMS0xLTIxMzUz_bcf8de52-b220-4cb4-a8e6-c92d9f920e59"
      unitRef="usd">455000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquireOtherProductiveAssets
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzIzLTYtMS0xLTIzNDMx_c57802d5-eeb4-46dd-9bdd-0dfd9ee02744"
      unitRef="usd">50000</us-gaap:PaymentsToAcquireOtherProductiveAssets>
    <us-gaap:PaymentsToAcquireOtherProductiveAssets
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzIzLTgtMS0xLTIzNDMx_3ab79a4e-54b3-4888-8d7c-8c51634982bc"
      unitRef="usd">0</us-gaap:PaymentsToAcquireOtherProductiveAssets>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzI2LTYtMS0xLTIxMzUz_54f06c71-51ae-42ef-b751-f4276a61be32"
      unitRef="usd">-2420000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzI2LTgtMS0xLTIxMzUz_e97a2929-534e-4f44-856d-d57ec21f704e"
      unitRef="usd">-455000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzI4LTYtMS0xLTIxMzUz_0b94b36e-a11a-4b5e-bb77-ad315deee677"
      unitRef="usd">89000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzI4LTgtMS0xLTIxMzUz_acd66349-fd1d-41f7-84ad-b2ee85232017"
      unitRef="usd">13000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockPlans
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzI5LTYtMS0xLTIxMzUz_860b0249-3339-400e-afdf-265800888126"
      unitRef="usd">390000</us-gaap:ProceedsFromStockPlans>
    <us-gaap:ProceedsFromStockPlans
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzI5LTgtMS0xLTIxMzUz_62bd7246-48ec-42f2-beed-04010020333b"
      unitRef="usd">142000</us-gaap:ProceedsFromStockPlans>
    <us-gaap:ProceedsFromWarrantExercises
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzMwLTYtMS0xLTIxMzUz_ca644767-54f6-4916-bde8-e3b5f31c1ab3"
      unitRef="usd">32000</us-gaap:ProceedsFromWarrantExercises>
    <us-gaap:ProceedsFromWarrantExercises
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzMwLTgtMS0xLTIxMzUz_eb70efda-d879-4ab4-8214-e152863dff56"
      unitRef="usd">18000</us-gaap:ProceedsFromWarrantExercises>
    <us-gaap:RepaymentsOfLongTermCapitalLeaseObligations
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzMxLTYtMS0xLTIxMzUz_03c28134-85da-4efb-b9e8-623043aa54ff"
      unitRef="usd">525000</us-gaap:RepaymentsOfLongTermCapitalLeaseObligations>
    <us-gaap:RepaymentsOfLongTermCapitalLeaseObligations
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzMxLTgtMS0xLTIxMzUz_4b14f5fe-73bc-4a61-8e00-b6d3e515dc7c"
      unitRef="usd">249000</us-gaap:RepaymentsOfLongTermCapitalLeaseObligations>
    <exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActProceedsFromLoan
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzMzLTYtMS0xLTIxMzUz_9c973c65-851f-4288-a9f6-4f2ea7f875c8"
      unitRef="usd">0</exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActProceedsFromLoan>
    <exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActProceedsFromLoan
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzMzLTgtMS0xLTIxMzUz_47c2235b-0f0a-41a1-a2d2-abca89d71a2f"
      unitRef="usd">2865000</exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActProceedsFromLoan>
    <exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActRepaymentsOfLoan
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzM0LTYtMS0xLTIxMzUz_a2977c95-45ea-48ce-921a-8e8a1d407779"
      unitRef="usd">0</exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActRepaymentsOfLoan>
    <exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActRepaymentsOfLoan
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzM0LTgtMS0xLTIxMzUz_358b8bbc-3bf3-4f70-80e6-cb0ebda7db59"
      unitRef="usd">2865000</exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActRepaymentsOfLoan>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQwLTYtMS0xLTIzNDE4_a59559a3-fdef-4853-96d3-089d6b94a166"
      unitRef="usd">69144000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQwLTgtMS0xLTIzNDE4_5e23a793-7255-4233-8894-43fe5a0dc910"
      unitRef="usd">0</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:PaymentsOfStockIssuanceCosts
      contextRef="ia9c9b2244bcb4a44964b921b1ef2418d_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQxLTYtMS0xLTIzNDE4_6b0b6745-526e-44a6-beee-3b4fd650807e"
      unitRef="usd">4407000</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:PaymentsOfStockIssuanceCosts
      contextRef="i29b84703b0ec486888f253c5eb9e5c4e_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQxLTgtMS0xLTIzNDE4_5c74a165-0e23-415a-84bc-4acefc1ed227"
      unitRef="usd">0</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:PaymentsOfStockIssuanceCosts
      contextRef="i43abe6c0e08d4ccd89024daa40929c82_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzM5LTYtMS0xLTIxMzUz_e7bed50b-c879-4053-9a8b-4a4d386541ce"
      unitRef="usd">40000</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:PaymentsOfStockIssuanceCosts
      contextRef="i2201bd245521466f8fba4561028c680a_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzM5LTgtMS0xLTIxMzUz_70e7d237-c0df-4271-bad3-5430dfe63721"
      unitRef="usd">21000</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQwLTYtMS0xLTIxMzUz_c460de96-dd1e-409b-ad13-30dddc886813"
      unitRef="usd">64683000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQwLTgtMS0xLTIxMzUz_6bfd6b67-5aad-45f3-adc5-4042b1040b84"
      unitRef="usd">-97000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQxLTYtMS0xLTIxMzUz_2e00a607-bf7e-4afa-9e89-6d2058398d2f"
      unitRef="usd">41994000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQxLTgtMS0xLTIxMzUz_ef23d419-d65c-4c28-bbef-b3c40e274656"
      unitRef="usd">-14636000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQyLTYtMS0xLTIxMzUz_5f42f6e7-4e7e-4287-b9b3-ea1d1f124060"
      unitRef="usd">57548000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i680f3acf8e474816aff7b5a834f833af_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQyLTgtMS0xLTIxMzUz_f1cd757b-d5a7-41e8-8f1c-45c9f92454fc"
      unitRef="usd">72184000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQzLTYtMS0xLTIxMzUz_dc8ca708-fca6-49a9-bf8c-29121a6b936e"
      unitRef="usd">99542000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQzLTgtMS0xLTIxMzUz_f42df3c7-ffdf-4e5a-a046-852d6b7a6bf6"
      unitRef="usd">57548000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:InterestPaidNet
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQ1LTYtMS0xLTIxMzUz_5cced913-91d5-4bf1-b0a6-3942104da0ba"
      unitRef="usd">1815000</us-gaap:InterestPaidNet>
    <us-gaap:InterestPaidNet
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQ1LTgtMS0xLTIxMzUz_9e200c97-973e-42e5-950b-d72c46957c53"
      unitRef="usd">1758000</us-gaap:InterestPaidNet>
    <exdx:EquipmentPurchasedUnderCapitalLease
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQ4LTYtMS0xLTIxMzUz_304033b6-8ff5-40e4-97b1-dfb7cd1b6cac"
      unitRef="usd">1111000</exdx:EquipmentPurchasedUnderCapitalLease>
    <exdx:EquipmentPurchasedUnderCapitalLease
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzQ4LTgtMS0xLTIxMzUz_6425623b-21f3-44c6-8b06-1e272076c8e1"
      unitRef="usd">260000</exdx:EquipmentPurchasedUnderCapitalLease>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzUwLTYtMS0xLTIxMzUz_fb530d64-a1a0-49ca-adb1-994be5c25c1d"
      unitRef="usd">685000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzUwLTgtMS0xLTIxMzUz_e2a0ab20-ec90-4bf8-b82e-8927065dc37e"
      unitRef="usd">553000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <exdx:DeferredOfferingCostsIncludedWithinCurrentLiabilities
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzUzLTYtMS0xLTIxMzUz_7ebc663d-7a32-4f51-8b9c-01e124c4567c"
      unitRef="usd">0</exdx:DeferredOfferingCostsIncludedWithinCurrentLiabilities>
    <exdx:DeferredOfferingCostsIncludedWithinCurrentLiabilities
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzUzLTgtMS0xLTIxMzUz_bf7a266a-ada6-4891-bc04-b75a38fed669"
      unitRef="usd">40000</exdx:DeferredOfferingCostsIncludedWithinCurrentLiabilities>
    <exdx:DeferredOfferingCostsReclassifiedToEquity
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzU3LTYtMS0xLTIzNDM4_f5b9fc76-ad38-4e40-a3fe-6b3356796fd6"
      unitRef="usd">28000</exdx:DeferredOfferingCostsReclassifiedToEquity>
    <exdx:DeferredOfferingCostsReclassifiedToEquity
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTIvZnJhZzpiZmI4Y2E4Nzc4NzA0NTZhOGYyMzg3NzU1YjNjMDM5MC90YWJsZTo4YmJjMWNjYWU2OTQ0MDQ1ODU3MDhjY2RhZTlkNTZiNy90YWJsZXJhbmdlOjhiYmMxY2NhZTY5NDQwNDU4NTcwOGNjZGFlOWQ1NmI3XzU3LTgtMS0xLTIzNDM4_d3ed155b-2029-4914-9352-3f65f45a7908"
      unitRef="usd">0</exdx:DeferredOfferingCostsReclassifiedToEquity>
    <us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTgvZnJhZzoxMzM0MzNiY2I0NDA0M2FjYTRiNzgwYzkyNjQxZGYxNi90ZXh0cmVnaW9uOjEzMzQzM2JjYjQ0MDQzYWNhNGI3ODBjOTI2NDFkZjE2XzIxMjA_cc8eb767-bc3f-4526-a0b6-3638d1e951c0">Organization&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Description of Business&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company is dedicated to transforming the care continuum for patients suffering from debilitating and chronic autoimmune diseases by enabling timely differential diagnosis and optimizing therapeutic intervention.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Liquidity&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has incurred recurring losses and negative cash flows from operating activities since inception. The Company anticipates that it will continue to incur net losses into the foreseeable future. At December&#160;31, 2021, the Company had cash and cash equivalents of $99.4 million and had an accumulated deficit of $208.1 million. Since inception, the Company has financed its operations primarily through a combination of equity financings of common stock and private placements of preferred securities, debt financing arrangements, and revenue from sales of the Company's products. Based on the Company's current business plan, management believes that its existing capital resources will be sufficient to fund the Company's obligations for at least twelve months following the issuance of these financial statements.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;To execute its business plans, the Company may need additional funding to support its continuing operations and pursue its growth strategy. Until such time as the Company can achieve significant cash flows from operations, if ever, it expects to finance its operations through the sale of its stock, debt financings or other strategic transactions. Although the Company has been successful in raising capital in the past, there is no assurance that it will be successful in obtaining such additional financing on terms acceptable to the Company, if at all. The terms of any financing may adversely affect the holdings or the rights of the Company's stockholders. If the Company is unable to obtain funding, the Company could be forced to delay, reduce or eliminate some or all of its programs, product portfolio expansion plans or commercialization efforts, which could have a material adverse effect on the Company's business, operating results and financial condition and the Company's ability to achieve its intended business objectives.&lt;/span&gt;&lt;/div&gt;</us-gaap:OrganizationConsolidationBasisOfPresentationBusinessDescriptionAndAccountingPoliciesTextBlock>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTgvZnJhZzoxMzM0MzNiY2I0NDA0M2FjYTRiNzgwYzkyNjQxZGYxNi90ZXh0cmVnaW9uOjEzMzQzM2JjYjQ0MDQzYWNhNGI3ODBjOTI2NDFkZjE2XzU3Ng_64ad53f1-0c23-4303-a92b-5111aaee1522"
      unitRef="usd">99400000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMTgvZnJhZzoxMzM0MzNiY2I0NDA0M2FjYTRiNzgwYzkyNjQxZGYxNi90ZXh0cmVnaW9uOjEzMzQzM2JjYjQ0MDQzYWNhNGI3ODBjOTI2NDFkZjE2XzYxMw_f2b6d1e6-460f-4661-9c7c-dd612353778c"
      unitRef="usd">-208100000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:SignificantAccountingPoliciesTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzQx_7cf70913-eea6-48c2-b462-c38574e5717e">Summary of Significant Accounting Policies&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Basis of Presentation and Use of Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's financial statements are prepared in accordance with accounting principles generally accepted in the United States of America (GAAP). The preparation of the accompanying financial statements requires management to make estimates and assumptions that affect the reported amounts of assets and liabilities, the disclosure of contingent assets and liabilities as of the date of the financial statements, and the reported amounts of revenue and expenses during the reporting period. Actual results could materially differ from those estimates.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Significant estimates and assumptions made in the accompanying financial statements include, but are not limited to revenue recognition, the fair value of financial instruments measured at fair value, the recoverability of its long-lived assets (including goodwill) and net deferred tax assets (and related valuation allowance). The Company evaluates its estimates and assumptions on an ongoing basis using historical experience and other factors and adjusts those estimates and assumptions when facts and circumstances dictate. Actual results could materially differ from those estimates.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Concentration of Credit Risk and Other Risk and Uncertainties&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that potentially subject the Company to credit risk consist principally of cash, cash equivalents, and accounts receivable. Substantially all the Company's cash and cash equivalents are held at one financial institution that management believes is of high credit quality. Such deposits may, at times, exceed federally insured limits.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Significant payors and customers are those which represent more than 10% of the Company's total revenue or accounts receivable balance at each respective balance sheet date. For each significant payor and customer, revenue as a percentage of total revenue and accounts receivable as a percentage of total accounts receivable are as follows:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:75.508%"/&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;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.864%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.868%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;td colspan="12" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Medicare&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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Medicare Advantage&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;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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Blue Shield&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;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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Janssen (SIMPONI&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;)&lt;/span&gt;&lt;/div&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;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&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:2.847%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:3.724%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:90.129%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:8pt"&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:0 1pt"/&gt;&lt;td colspan="3" style="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:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less than 10%.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&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:70.391%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&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 style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.499%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="9" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Accounts Receivable&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Blue Shield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;United Healthcare&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;*&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;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Janssen (SIMPONI&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&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:2.847%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:3.724%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:90.129%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:8pt"&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:0 1pt"/&gt;&lt;td colspan="3" style="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:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less than 10%.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the years ended December&#160;31, 2021 and 2020, approximately 81% and 70% of the Company's revenue was related to the AVISE&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; CTD test, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company is dependent on key suppliers for certain laboratory materials. For each of the years ended December&#160;31, 2021 and 2020, approximately 97% of the Company's diagnostic testing supplies were purchased from two suppliers. An interruption in the supply of these materials would impact the Company's ability to perform testing services.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Disaggregation of Revenue&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table includes the Company's revenues as disaggregated by payor and customer category (in&#160;thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.707%"/&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;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.765%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.768%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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="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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Revenue:&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;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="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;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Healthcare insurers&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;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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27,499&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;22,456&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Government&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;9,221&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;8,446&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Client(1)&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;9,288&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,109&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Other(2)&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,091&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;836&#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;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Janssen (SIMPONI&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.2pt;font-weight:400;line-height:100%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;)&lt;/span&gt;&lt;/div&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,200&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,128&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total revenue&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;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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;48,299&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;41,975&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:31.5pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;padding-left:8.24pt"&gt;Includes hospitals, other laboratories, etc.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:31.5pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;padding-left:8.24pt"&gt;Includes patient self-pay&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:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The carrying value of the Company's cash and cash equivalents approximate fair value due to the short-term nature of these items. The estimated fair value of the Company's long-term borrowings are determined by Level 2 inputs and is based primarily on quoted market prices for the same or similar issues. The recorded value of the Company's &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;long-term borrowings approximates the current fair value as the interest rate and other terms are that which are currently available to the Company.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fair value is defined as the exchange price that would be received for an asset or an exit price paid to transfer a liability in the principal or most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Valuation techniques used to measure fair value must maximize the use of observable inputs and minimize the use of unobservable inputs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value hierarchy defines a three-level valuation hierarchy for disclosure of fair value measurements as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;padding-left:94.5pt;text-indent:-72pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 1 -&#160;&#160;&#160;&#160;Unadjusted quoted prices in active markets for identical assets or liabilities;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;padding-left:94.5pt;text-indent:-72pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 2 -&#160;&#160;&#160;&#160;Inputs other than quoted prices included within Level I that are observable, unadjusted quoted prices in markets that are not active, or other inputs that are observable or can be corroborated by observable market data for substantially the full term of the related assets or liabilities; and&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;padding-left:94.5pt;text-indent:-72pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 3 -&#160;&#160;&#160;&#160;Unobservable inputs that are supported by little or no market activity for the related assets or liabilities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The categorization of a financial instrument within the valuation hierarchy is based upon the lowest level of input that is significant to the fair value measurement.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cash, Cash Equivalents and Restricted Cash&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company considers all highly-liquid investments purchased with a remaining maturity date upon acquisition of three months or less to be cash equivalents and are stated at cost, which approximates fair value.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has an arrangement with a financial institution with which it has an existing banking relationship whereby in exchange for the issuance of corporate credit cards, the Company agreed to obtain a $0.1 million certificate of deposit with this financial institution as collateral for the balances borrowed on these credit cards. The Company has classified the value of this certificate of deposit (including all interest earned thereon) within other assets in the accompanying balance sheets. The Company has the right to terminate the credit card program at any time. Upon termination of the credit card program and repayment of all outstanding balances owed, the Company may redeem the certificate of deposit (and all interest earned thereon).&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash, cash equivalents and restricted cash presented in the accompanying statements of cash flows consist of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.999%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&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 style="width:1.0%"/&gt;&lt;td style="width:11.619%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.622%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;99,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57,448&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Restricted cash&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;100&#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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;100&#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:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;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:'Arial',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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;99,542&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57,548&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:15pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Property and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment are stated at cost, net of depreciation and amortization. Depreciation is computed using the straight-line method over the estimated useful lives of the assets, generally between &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzYxOTQ_fef8e41c-9138-4dc9-99a1-0e0d49fa562d"&gt;three&lt;/span&gt; and five years. Leasehold improvements are amortized on a straight-line basis over the lesser of the estimated useful life or the remaining term of the related lease. Maintenance and repairs are charged to expense as incurred, and improvements and betterments are capitalized. When assets are retired or otherwise disposed of, the cost and accumulated depreciation are removed from the balance sheet and any resulting gain or loss is reflected in other income or expense in the statements of operations in the period realized. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Long-lived Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s long-lived assets are comprised principally of its property and equipment, finite lived intangible assets, and goodwill. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;If the Company identifies a change in the circumstances related to its long-lived assets, such as property and equipment and intangible assets (other than goodwill), that indicates the carrying value of any such asset may not be recoverable, the Company will perform an impairment analysis. A long-lived asset (other than goodwill) is deemed to be impaired when the undiscounted cash flows expected to be generated by the asset (or asset group) are less than the asset&#x2019;s carrying amount. Any required impairment loss would be measured as the amount by which the asset&#x2019;s carrying value exceeds its fair value, and would be recorded as a reduction in the carrying value of the related asset and a charge to operating expense. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill is reviewed for impairment annually (during the fourth quarter) or more frequently if indicators of impairment exist. As the Company operates in a single operating segment and reporting unit, the Company first assesses qualitative factors to determine whether it is more likely than not that the fair value of the reporting unit is less than its carrying amount as a basis for determining whether it is necessary to perform a quantitative assessment. If, after assessing qualitative factors, the Company determines it is not more likely than not that the fair value of a reporting unit is less than its carrying amount, then performing a quantitative assessment is unnecessary. If deemed necessary, a quantitative assessment compares the fair value of the reporting unit with its carrying amount, including goodwill. If the fair value of the reporting unit exceeds its carrying amount, goodwill is not considered impaired; otherwise, an impairment loss is recorded. No impairment was recognized for any of the periods presented.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Clinical Studies&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;From time to time, the Company engages in efforts to scientifically measure and document the application and efficacy of its various testing products. These arrangements typically require the Company to pay a fee to a third-party scientific investigator (usually a physician or research institution) for each subject enrolled in a clinical study, and the Company accrues expenses associated with these efforts as subjects are enrolled in each study. Payments made prior to the completion of clinical study services are capitalized until the services are rendered. Expenses associated with clinical study activities are recorded in research and development expenses in the accompanying statement of operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Substantially all of the Company's revenue has been derived from sales of its testing products and is primarily comprised of a high volume of relatively low-dollar transactions. The Company primarily markets its testing products to rheumatologists and their physician assistants in the United States. The healthcare professionals who order the Company's testing products and to whom test results are reported are generally not responsible for payment for these products. The parties that pay for these services (each, a payors) consist of healthcare insurers, government payors (primarily Medicare and Medicaid), client payors (i.e., hospitals, other laboratories, etc.), and patient self-pay. The Company's service is a single performance obligation that is completed upon the delivery of test results to the prescribing physician which triggers revenue recognition.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Payors are billed at the Company's list price. Net revenues recognized consist of amounts billed net of allowances for differences between amounts billed and the estimated consideration the Company expects to receive from such payors. The process for estimating revenues and the ultimate collection of accounts receivable involves significant judgment and estimation. The Company follows a standard process, which considers historical denial and collection experience, insurance reimbursement policies and other factors, to estimate allowances and implicit price concessions, recording adjustments in the current period as changes in estimates occur. Further adjustments to the allowances, based on actual receipts, are recorded upon settlement. The transaction price is estimated using an expected value method on a portfolio basis. The Company's portfolios are grouped per payor (i.e. each individual third-party insurance, Medicare, client payors, patient self-pay, etc.) and per test basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Collection of the Company's net revenues from payors is normally a function of providing complete and correct billing information to the healthcare insurers and generally occurs within 30 to 90 days of billing. Contracts do not contain significant financing components based on the typical period of time between performance of services and collection of consideration. Revenue recognized during the years ended December 31, 2021 and 2020 related to performance obligations satisfied in previous periods was approximately $0.7 million and $0.8 million, respectively, which relates to a change in estimate of the transaction price.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Janssen Promotion Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2018, the Company entered into a co-promotion agreement (as amended from time to time, the Janssen Agreement) with Janssen Biotech, Inc. (Janssen) to co-promote SIMPONI&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; in the United States. In August 2021, the Company and Janssen mutually agreed to terminate the Janssen Agreement effective on August 31, 2021. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Pursuant to the Janssen Agreement, the Company was responsible for the costs associated with its sales force over the course of such co-promotion. Janssen was responsible for all other aspects of the commercialization of SIMPONI&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; under the Janssen Agreement. In exchange for the Company's sales and co-promotional services, the Company was entitled to a quarterly tiered promotion fee based on the incremental increase in total prescribed units of SIMPONI&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; for that quarter over a predetermined baseline. For the year ended December 31, 2020, the tiered promotion fee ranged from $750 to $1,250 per prescription over a predetermined baseline. Due in part to COVID-19, in June 2020, the Janssen Agreement was amended to adjust the predetermined average baseline for the third and fourth quarters of 2020. The Janssen Agreement was further amended in June 2020 and December 2020 to adjust the predetermined average baseline for prescribed units for the quarters ending December 31, 2020 and March 31, 2021 and was subject to further adjustment under certain circumstances. In June 2021, the Janssen Agreement was again amended to proportionally increase the baseline for prescribed units for the quarter ended June 30, 2021 to reflect the addition of certain geographies to the sales territories covered by the Janssen Agreement. For the first and second quarters of 2021, the Company earned the minimum promotion fee of $0.3 million. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Upon the termination of the Janssen Agreement on August 31, 2021, the Company became entitled to receive an aggregate of $0.6 million in consideration, which was earned in the year ended December&#160;31, 2021. Pursuant to the terms of the termination, the Company is restricted from promoting any other biologic or Janus kinase inhibitor used for treatment of indications covered by the Janssen Agreement without first obtaining Janssen's written consent until May 31, 2022. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company's obligations relating to sales and co-promotion services for SIMPONI&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; were a series of single performance obligations since Janssen simultaneously received and consumed benefits provided by the Company's sales and co-promotional services. The method for measuring progress towards satisfying the performance obligations was based on prescribed units in excess of the contractual baseline at the contractual rate earned per unit since the Amended Janssen Agreement was cancelable. The Company recognized co-promotion revenue of approximately $1.2 million and $5.1 million during the years ended December&#160;31, 2021 and 2020, respectively. The related expenses for marketing SIMPONI&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.85pt;font-weight:400;line-height:120%;position:relative;top:-3.15pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; are included in selling, general and administrative expenses and are expensed as incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Research and Development&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Costs associated with research and development activities are expensed as incurred and include, but are not limited to, personnel-related expenses, including stock-based compensation expense, materials, laboratory supplies, consulting costs, costs associated with setting up and conducting clinical studies and allocated overhead including rent and utilities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Advertising and Marketing Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Costs associated with advertising and marketing activities are expensed as incurred. Total advertising and marketing costs were approximately $1.7 million and $1.3 million for the years ended December&#160;31, 2021 and 2020, respectively, and are included in selling, general and administrative expenses in the accompanying statements of operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Shipping and Handling Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Costs incurred for shipping and handling are included in costs of revenue in the accompanying statements of operations and totaled approximately $2.1 million and $1.4 million, for the years ended December&#160;31, 2021 and 2020, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes compensation expense for all stock-based awards to employees and directors based on the grant-date estimated fair values over the requisite service period of the awards (usually the vesting period) on a &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;straight-line basis. The fair value of stock options and purchases under the Company's 2019 Employee Stock Purchase Plan (ESPP) rights is determined using the Black-Scholes-Merton (BSM) option pricing model, which requires management to make certain assumptions regarding a number of complex and subjective variables. Equity award forfeitures are recorded as they occur.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The BSM option pricing model incorporates various estimates, including the fair value of the Company's common stock, expected volatility, expected term and risk-free interest rates. The weighted-average expected term of options was calculated using the simplified method. The risk-free interest rate for periods within the contractual term of the option is based on the U.S. Treasury yield in effect at the time of grant. The dividend yield was zero, as the Company has never declared or paid dividends and has no plans to do so in the foreseeable future.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of each restricted stock unit is determined on the grant date using the closing price of the Company's common stock on the grant date and generally vest from the grant date in four equal annual installments subject to the holder's continued service with the Company. The Company issues new shares to satisfy restricted stock units upon vesting.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of the Company's common stock is determined by using the closing price of its common stock on the corresponding date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Comprehensive Loss&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Comprehensive loss is defined as a change in equity of a business enterprise during a period, resulting from transactions from nonowner sources. There have been no items qualifying as other comprehensive loss and, therefore, for all periods presented, the Company's comprehensive loss was the same as its reported net loss.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company accounts for income taxes under the asset and liability method, which requires the recognition of deferred tax assets and liabilities for the expected future tax consequences of events that have been included in the financial statements. Under this method, deferred tax assets and liabilities are determined on the basis of the differences between the financial statements and tax basis of assets and liabilities using enacted tax rates in effect for the year in which the differences are expected to reverse. The effect of a change in tax rates on deferred tax assets and liabilities is recognized in income in the period that includes the enactment date. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes net deferred tax assets to the extent that the Company believes these assets are more likely than not to be realized. In making such a determination, management considers all available positive and negative evidence, including future reversals of existing taxable temporary differences, projected future taxable income, tax-planning strategies, and results of recent operations. If management determines that the Company would be able to realize its deferred tax assets in the future in excess of their net recorded amount, management would adjust the deferred tax asset valuation allowance, which would reduce the provision for income taxes. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company records uncertain tax positions on the basis of a two-step process whereby (i) management determines whether it is more likely than not that the tax positions will be sustained on the basis of the technical merits of the position and (ii) for those tax positions that meet the more-likely-than-not recognition threshold, management recognizes the largest amount of tax benefit that is more than 50% likely to be realized upon ultimate settlement with the related tax authority. The Company recognizes interest and penalties related to unrecognized tax benefits within income tax expense. Any accrued interest and penalties are included within the related tax liability.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Net Loss Per Share&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic net loss per share attributable to common stockholders is calculated by dividing the net loss attributable to common stockholders by the weighted-average number of common shares outstanding during the period. Diluted net loss per share attributable to common stockholders is computed by dividing the net loss attributable to common stockholders by the weighted-average number of common stock equivalents outstanding for the period determined using the treasury-stock and if-converted methods. The weighted-average number of shares in 2021 used to compute basic and diluted shares includes shares issuable upon the exercise of pre-funded warrants at a nominal price. Potentially dilutive common stock equivalents are comprised of warrants for the purchase of common stock, options and restricted stock units outstanding under the Company's 2019 Incentive Award Plan (the 2019 Plan) and shares of the Company's common stock pursuant to the ESPP. For the years ended December&#160;31, 2021 and 2020, &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;there is no difference in the number of shares used to calculate basic and diluted shares outstanding as the inclusion of the potentially dilutive securities would be antidilutive.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Potentially dilutive securities not included in the calculation of diluted net loss per share because to do so would be anti-dilutive are as follows (in common stock equivalent shares):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:67.905%"/&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;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.666%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.669%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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="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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Warrants to purchase common stock&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;409,108&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;426,827&#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="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock options&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,014,330&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,975,761&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Restricted stock units&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;415,325&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Employee stock purchase plan&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;20,193&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;11,640&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total&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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,858,956&#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 colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,414,228&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Government Assistance Grant Income&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Absent authoritative accounting standards, interpretive guidance issued and commonly applied by financial statement preparers allows for the selection of accounting policies amongst acceptable alternatives. Based on the facts and circumstances of the government assistance received by the Company as discussed in Note 11, the Company determined it most appropriate to account for the transaction by analogy to International Accounting Standards 20 (IAS 20), &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Accounting for Government Grants and Disclosure of Government Assistance&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. IAS 20 permits for the recognition in earnings either separately under a general heading such as other income, or as a reduction of the related expenses. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Segment Reporting&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating segments are identified as components of an enterprise about which separate discrete financial information is available for evaluation by the chief operating decision-maker in making decisions regarding resource allocation and assessing performance. The Company views its operations as, and manages its business in, one operating segment.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;From time to time, new accounting pronouncements are issued by the Financial Accounting Standards Board (FASB), or other standard setting bodies and adopted by the Company as of the specified effective date. Under the Jumpstart Our Business Startups Act of 2012 (JOBS Act), the Company meets the definition of an emerging growth company. The Company has elected to use the extended transition period for complying with new or revised accounting standards pursuant to Section 107(b) of the JOBS Act. Unless otherwise discussed, the impact of recently issued standards that are not yet effective will not have a material impact on the Company's financial position or results of operations upon adoption.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In February 2016, the FASB issued Accounting Standards Update (ASU) 2016-02,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;&#160;Leases&#160;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(Topic 842). The new topic supersedes Topic 840,&#160;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Leases&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, and increases transparency and comparability among organizations by recognizing lease assets and lease liabilities on the balance sheet and requires disclosures of key information about leasing arrangements. In July 2018, the FASB issued ASU 2018-10, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Codification Improvements to Topic 842&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, which provides narrow amendments to clarify how to apply certain aspects of the new lease standard, and ASU 2018-11, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Leases: Targeted Improvements&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, which was issued to provide relief to companies from restating comparative periods. Pursuant to this ASU, in the period of adoption the Company will not restate comparative periods presented in its financial statements. The effective date of this guidance for public companies is for reporting periods beginning after December&#160;15, 2018. In June 2020, the FASB issued ASU 2020-05, which delays the adoption of ASU 2016-02 for non-public entities to fiscal years beginning after December 15, 2021, and interim periods beginning after December 15, 2022. As an emerging growth company as defined in the JOBS Act, the Company has elected to early adopt this ASU as of January 1, 2022. Topic 842 mandates a modified retrospective transition method. The Company intends to adopt the new lease standard using a cumulative effect to accumulated deficit and will elect the package of practical expedients, which among other things will allow the Company to carry forward its historical lease classification. The Company is in the process of completing its evaluation of the effect that the adoption of this ASU will have on its financial statements. The Company currently believes the most significant change will be &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;related to the recognition of a new right-of-use asset and lease liability at January 1, 2022 on the Company's balance sheet for its office and laboratory space operating leases.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Recently Adopted Accounting Standards&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2019, the FASB issued ASU 2019-12, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Simplifying the Accounting for Income Taxes&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The new guidance removes certain exceptions to the general principles of ASC 740 in order to simplify the complexities of its application. These changes include eliminations to the exceptions for intraperiod tax allocation, recognizing deferred tax liabilities related to outside basis differences, and year-to-date losses in interim periods, among others. The effective date of this guidance for public companies is for fiscal years, and interim period within those fiscal years, beginning after December 15, 2020. The Company adopted this guidance on January 1, 2021, and the adoption did not have a material impact on its financial statements.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2021, the FASB issued ASU 2021-10, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Government Assistance &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(Topic 832). The update requires certain annual disclosures about transactions with a government that are accounted for by applying a grant or contribution model by analogy. The amendments in this update are effective for fiscal years beginning after December 15, 2021. Early application of the amendments is permitted. The Company early adopted these disclosure requirements and applied them to its disclosure of the funding received as part of the Coronavirus Aid, Relief, and Economic Security Act (CARES Act) in 2020.&lt;/span&gt;&lt;/div&gt;</us-gaap:SignificantAccountingPoliciesTextBlock>
    <us-gaap:ConcentrationRiskCreditRisk
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzQ2_8cd918e7-b92f-48a8-91f8-185e32383bbc">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Concentration of Credit Risk and Other Risk and Uncertainties&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that potentially subject the Company to credit risk consist principally of cash, cash equivalents, and accounts receivable. Substantially all the Company's cash and cash equivalents are held at one financial institution that management believes is of high credit quality. Such deposits may, at times, exceed federally insured limits.&lt;/span&gt;&lt;/div&gt;</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzQy_c3a27289-4ff1-4184-8d5c-b3cf4dcc247c">For each significant payor and customer, revenue as a percentage of total revenue and accounts receivable as a percentage of total accounts receivable are as follows:&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:75.508%"/&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;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.864%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.868%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;td colspan="12" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Revenue&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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="border-top:1pt solid #000000;padding:0 1pt"/&gt;&lt;td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Medicare&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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Medicare Advantage&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;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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;13&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Blue Shield&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;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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Janssen (SIMPONI&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;)&lt;/span&gt;&lt;/div&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;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&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:2.847%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:3.724%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:90.129%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:8pt"&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:0 1pt"/&gt;&lt;td colspan="3" style="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:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less than 10%.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&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:70.391%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&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 style="width:1.0%"/&gt;&lt;td style="width:12.350%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.499%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="9" style="border-bottom:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Accounts Receivable&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="9" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Blue Shield&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;United Healthcare&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;18&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;*&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;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Janssen (SIMPONI&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:6.5pt;font-weight:400;line-height:100%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;35&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&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:2.847%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:3.724%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:90.129%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:8pt"&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:0 1pt"/&gt;&lt;td colspan="3" style="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:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;*&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;Less than 10%.&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SchedulesOfConcentrationOfRiskByRiskFactorTextBlock>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i9d99fd99c4a747ecb7f74ee038626db0_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTowOTY4MmQ3ZTZmOTU0OGY5YjAzNzE4MWQxNjNhN2JjYi90YWJsZXJhbmdlOjA5NjgyZDdlNmY5NTQ4ZjliMDM3MTgxZDE2M2E3YmNiXzMtNi0xLTEtMjEzNTM_91e15261-a4f0-44d8-94b3-792064c35638"
      unitRef="number">0.19</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i7e918df2e25b4dc19a2a72e039187e06_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTowOTY4MmQ3ZTZmOTU0OGY5YjAzNzE4MWQxNjNhN2JjYi90YWJsZXJhbmdlOjA5NjgyZDdlNmY5NTQ4ZjliMDM3MTgxZDE2M2E3YmNiXzMtOC0xLTEtMjEzNTM_b9426414-9e40-43b7-95fc-61085fe5c13f"
      unitRef="number">0.20</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="ic751586adfa6405b8d274207027a4877_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTowOTY4MmQ3ZTZmOTU0OGY5YjAzNzE4MWQxNjNhN2JjYi90YWJsZXJhbmdlOjA5NjgyZDdlNmY5NTQ4ZjliMDM3MTgxZDE2M2E3YmNiXzQtNi0xLTEtMjEzNTM_dced355d-fadf-43d6-b75c-bff1a7c0ddcd"
      unitRef="number">0.13</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i31cadfa772e043ffb2a417f883b9a59c_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTowOTY4MmQ3ZTZmOTU0OGY5YjAzNzE4MWQxNjNhN2JjYi90YWJsZXJhbmdlOjA5NjgyZDdlNmY5NTQ4ZjliMDM3MTgxZDE2M2E3YmNiXzQtOC0xLTEtMjEzNTM_3246b7a7-31bf-4f2d-90e5-47188977bed1"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i8e4b341e5bd540eea256a37a11479cf1_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTowOTY4MmQ3ZTZmOTU0OGY5YjAzNzE4MWQxNjNhN2JjYi90YWJsZXJhbmdlOjA5NjgyZDdlNmY5NTQ4ZjliMDM3MTgxZDE2M2E3YmNiXzUtNi0xLTEtMjEzNTM_bdc9f001-7970-4e6f-b231-662bc5183a18"
      unitRef="number">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i04ba271a110b411bb0f601c01a26ba6b_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTowOTY4MmQ3ZTZmOTU0OGY5YjAzNzE4MWQxNjNhN2JjYi90YWJsZXJhbmdlOjA5NjgyZDdlNmY5NTQ4ZjliMDM3MTgxZDE2M2E3YmNiXzUtOC0xLTEtMjEzNTM_f7cf8ba5-e9de-4773-ad10-fab0b6c6b705"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="ic7bfee2a83244398ae9e6dcb73a3ea25_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTowOTY4MmQ3ZTZmOTU0OGY5YjAzNzE4MWQxNjNhN2JjYi90YWJsZXJhbmdlOjA5NjgyZDdlNmY5NTQ4ZjliMDM3MTgxZDE2M2E3YmNiXzctOC0xLTEtMjEzNTM_b1899d86-1188-496a-99af-450aa0c184da"
      unitRef="number">0.12</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="ief1170f74b8c4ce7a228afaddcc5be1c_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTpkNTcxMGQ2MGRmMjI0OTI0OTlmZjY3Mzg5YmEyNGY4Ny90YWJsZXJhbmdlOmQ1NzEwZDYwZGYyMjQ5MjQ5OWZmNjczODliYTI0Zjg3XzMtNC0xLTEtMjEzNTM_231dd326-091d-4ac6-934d-8ec1e764a5ea"
      unitRef="number">0.19</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="id08a4b3852c54d3da4c331b43214f89f_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTpkNTcxMGQ2MGRmMjI0OTI0OTlmZjY3Mzg5YmEyNGY4Ny90YWJsZXJhbmdlOmQ1NzEwZDYwZGYyMjQ5MjQ5OWZmNjczODliYTI0Zjg3XzMtNi0xLTEtMjEzNTM_8e6bda38-8331-4896-a2d5-3a977f36a339"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i060448a04148437588aa3aa5fa329f2a_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTpkNTcxMGQ2MGRmMjI0OTI0OTlmZjY3Mzg5YmEyNGY4Ny90YWJsZXJhbmdlOmQ1NzEwZDYwZGYyMjQ5MjQ5OWZmNjczODliYTI0Zjg3XzQtNC0xLTEtMjEzNTM_6d1a5696-b8f0-436a-ab13-b993c2963166"
      unitRef="number">0.18</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i875304ba1f344b1dbd88e0c3a64878ac_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTpkNTcxMGQ2MGRmMjI0OTI0OTlmZjY3Mzg5YmEyNGY4Ny90YWJsZXJhbmdlOmQ1NzEwZDYwZGYyMjQ5MjQ5OWZmNjczODliYTI0Zjg3XzUtNC0xLTEtMjEzNTM_9d2c5475-8f86-43cc-b149-e4b4a49856ea"
      unitRef="number">0</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i4a28af0d9119461299e66af2b6201d4d_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTpkNTcxMGQ2MGRmMjI0OTI0OTlmZjY3Mzg5YmEyNGY4Ny90YWJsZXJhbmdlOmQ1NzEwZDYwZGYyMjQ5MjQ5OWZmNjczODliYTI0Zjg3XzUtNi0xLTEtMjEzNTM_83cc4513-b006-4626-9d22-5ac915d7aa9d"
      unitRef="number">0.35</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i8e1bd220aa234f8e987f64d0d16e0e86_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzIxODM_eaab8031-3b1c-4c66-86ea-3153d8f5724c"
      unitRef="number">0.81</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i99eabc194bfb48a39a2bb4a8f7d552aa_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzIxOTA_89fd9515-5242-4511-a1f0-35d51190370f"
      unitRef="number">0.70</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="idb276bb9ff144418a778ab273f21c811_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzIzOTk_2fce502b-0c92-45ea-b06e-9a24bf52e9e1"
      unitRef="number">0.97</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i099a8a1452264ff69867c43a0f5c06bd_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzIzOTk_991271f6-ff72-406e-99f7-0dfff3fd9eca"
      unitRef="number">0.97</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:DisaggregationOfRevenueTableTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzI4_635c5e24-66ba-470f-a90f-eee23d380f82">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table includes the Company's revenues as disaggregated by payor and customer category (in&#160;thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.707%"/&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;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.765%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.768%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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="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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Revenue:&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;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="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;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Healthcare insurers&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;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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27,499&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;22,456&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Government&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;9,221&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;8,446&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Client(1)&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;9,288&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,109&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Other(2)&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,091&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;836&#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;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Janssen (SIMPONI&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:5.2pt;font-weight:400;line-height:100%;position:relative;top:-2.8pt;vertical-align:baseline"&gt;&#xae;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;)&lt;/span&gt;&lt;/div&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,200&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,128&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total revenue&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;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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;48,299&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;41,975&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="padding-left:31.5pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;padding-left:8.24pt"&gt;Includes hospitals, other laboratories, etc.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:31.5pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;(2)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:120%;padding-left:8.24pt"&gt;Includes patient self-pay&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:DisaggregationOfRevenueTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9be2ce4664494756b54f075de7b4a5f5_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTo5ZDNjYWRkYjFiZjc0ZmI1ODk3MDFlODJlNWJlYTE1Yy90YWJsZXJhbmdlOjlkM2NhZGRiMWJmNzRmYjU4OTcwMWU4MmU1YmVhMTVjXzMtNi0xLTEtMjEzNTM_a1017b5d-bf8a-489d-a882-6225708d93bf"
      unitRef="usd">27499000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1a94aa480a9f495b90694cd1cde0f018_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTo5ZDNjYWRkYjFiZjc0ZmI1ODk3MDFlODJlNWJlYTE1Yy90YWJsZXJhbmdlOjlkM2NhZGRiMWJmNzRmYjU4OTcwMWU4MmU1YmVhMTVjXzMtOC0xLTEtMjEzNTM_c66d9347-f176-4df4-b1b4-9abe76de00e5"
      unitRef="usd">22456000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i59a8cc8e89e44fda9982eb3773bcd045_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTo5ZDNjYWRkYjFiZjc0ZmI1ODk3MDFlODJlNWJlYTE1Yy90YWJsZXJhbmdlOjlkM2NhZGRiMWJmNzRmYjU4OTcwMWU4MmU1YmVhMTVjXzQtNi0xLTEtMjEzNTM_25ecd45d-fce2-4ab6-9cfa-9773735e3459"
      unitRef="usd">9221000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i676ed609f633485ab48853289dc742fa_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTo5ZDNjYWRkYjFiZjc0ZmI1ODk3MDFlODJlNWJlYTE1Yy90YWJsZXJhbmdlOjlkM2NhZGRiMWJmNzRmYjU4OTcwMWU4MmU1YmVhMTVjXzQtOC0xLTEtMjEzNTM_6c444bf6-7d52-4216-95f4-96a2946f68c7"
      unitRef="usd">8446000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i304971fc34904d24a0461de2774f9311_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTo5ZDNjYWRkYjFiZjc0ZmI1ODk3MDFlODJlNWJlYTE1Yy90YWJsZXJhbmdlOjlkM2NhZGRiMWJmNzRmYjU4OTcwMWU4MmU1YmVhMTVjXzUtNi0xLTEtMjEzNTM_0c722f67-54ba-4103-9fc4-bdc728385a8e"
      unitRef="usd">9288000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib587a9ef13aa4f88b7983576bfa53549_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTo5ZDNjYWRkYjFiZjc0ZmI1ODk3MDFlODJlNWJlYTE1Yy90YWJsZXJhbmdlOjlkM2NhZGRiMWJmNzRmYjU4OTcwMWU4MmU1YmVhMTVjXzUtOC0xLTEtMjEzNTM_0e4a2f64-937b-4a00-bdca-ec52eba3b8d7"
      unitRef="usd">5109000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id0604cbe79c14ed9875cc3e2c65bf072_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTo5ZDNjYWRkYjFiZjc0ZmI1ODk3MDFlODJlNWJlYTE1Yy90YWJsZXJhbmdlOjlkM2NhZGRiMWJmNzRmYjU4OTcwMWU4MmU1YmVhMTVjXzYtNi0xLTEtMjEzNTM_7094a2a0-17c4-4803-992f-902eb654a691"
      unitRef="usd">1091000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i12188c237ec74c059881074507e5f1ab_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTo5ZDNjYWRkYjFiZjc0ZmI1ODk3MDFlODJlNWJlYTE1Yy90YWJsZXJhbmdlOjlkM2NhZGRiMWJmNzRmYjU4OTcwMWU4MmU1YmVhMTVjXzYtOC0xLTEtMjEzNTM_d7e5054f-3a8c-4e94-a8da-07d85f4b4879"
      unitRef="usd">836000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i0dac58cf4151488d8c5d4fb4b5b13ebc_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTo5ZDNjYWRkYjFiZjc0ZmI1ODk3MDFlODJlNWJlYTE1Yy90YWJsZXJhbmdlOjlkM2NhZGRiMWJmNzRmYjU4OTcwMWU4MmU1YmVhMTVjXzctNi0xLTEtMjEzNTM_d44eb242-393d-4386-bd5a-ae44c8a4d2f1"
      unitRef="usd">1200000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6ca03d75c5734f4e9de082c43e02745b_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTo5ZDNjYWRkYjFiZjc0ZmI1ODk3MDFlODJlNWJlYTE1Yy90YWJsZXJhbmdlOjlkM2NhZGRiMWJmNzRmYjU4OTcwMWU4MmU1YmVhMTVjXzctOC0xLTEtMjEzNTM_39d1bb12-2049-4727-906e-c2e631ff4921"
      unitRef="usd">5128000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTo5ZDNjYWRkYjFiZjc0ZmI1ODk3MDFlODJlNWJlYTE1Yy90YWJsZXJhbmdlOjlkM2NhZGRiMWJmNzRmYjU4OTcwMWU4MmU1YmVhMTVjXzgtNi0xLTEtMjEzNTM_6de01639-bd38-4a20-a7a0-4a317855cd27"
      unitRef="usd">48299000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTo5ZDNjYWRkYjFiZjc0ZmI1ODk3MDFlODJlNWJlYTE1Yy90YWJsZXJhbmdlOjlkM2NhZGRiMWJmNzRmYjU4OTcwMWU4MmU1YmVhMTVjXzgtOC0xLTEtMjEzNTM_c23c4b5d-b0f7-4892-a415-c1b7cab1b026"
      unitRef="usd">41975000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:FairValueMeasurementPolicyPolicyTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzM0_479d5553-2541-438e-9ac5-bf26d3b81eba">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Fair Value Measurements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The carrying value of the Company's cash and cash equivalents approximate fair value due to the short-term nature of these items. The estimated fair value of the Company's long-term borrowings are determined by Level 2 inputs and is based primarily on quoted market prices for the same or similar issues. The recorded value of the Company's &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;long-term borrowings approximates the current fair value as the interest rate and other terms are that which are currently available to the Company.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fair value is defined as the exchange price that would be received for an asset or an exit price paid to transfer a liability in the principal or most advantageous market for the asset or liability in an orderly transaction between market participants on the measurement date. Valuation techniques used to measure fair value must maximize the use of observable inputs and minimize the use of unobservable inputs.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value hierarchy defines a three-level valuation hierarchy for disclosure of fair value measurements as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;padding-left:94.5pt;text-indent:-72pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 1 -&#160;&#160;&#160;&#160;Unadjusted quoted prices in active markets for identical assets or liabilities;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;padding-left:94.5pt;text-indent:-72pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 2 -&#160;&#160;&#160;&#160;Inputs other than quoted prices included within Level I that are observable, unadjusted quoted prices in markets that are not active, or other inputs that are observable or can be corroborated by observable market data for substantially the full term of the related assets or liabilities; and&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt;padding-left:94.5pt;text-indent:-72pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Level 3 -&#160;&#160;&#160;&#160;Unobservable inputs that are supported by little or no market activity for the related assets or liabilities.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The categorization of a financial instrument within the valuation hierarchy is based upon the lowest level of input that is significant to the fair value measurement.&lt;/span&gt;&lt;/div&gt;</us-gaap:FairValueMeasurementPolicyPolicyTextBlock>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzI5_82607e9b-a027-4fb7-aee5-cb635d4e6e30">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cash, Cash Equivalents and Restricted Cash&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company considers all highly-liquid investments purchased with a remaining maturity date upon acquisition of three months or less to be cash equivalents and are stated at cost, which approximates fair value.&lt;/span&gt;&lt;/div&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:RestrictedCash
      contextRef="if998625e842c43dfa677fac8cc5d0738_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzUyODA_a9869b58-7e34-4752-a62e-b740878f0e86"
      unitRef="usd">100000</us-gaap:RestrictedCash>
    <us-gaap:ScheduleOfRestrictedCashAndCashEquivalentsTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzM1_a75ccf9b-7ee9-450b-af35-133d660b4cdf">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash, cash equivalents and restricted cash presented in the accompanying statements of cash flows consist of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.999%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&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 style="width:1.0%"/&gt;&lt;td style="width:11.619%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.622%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;99,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57,448&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Restricted cash&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;100&#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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;100&#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:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;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:'Arial',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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;99,542&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57,548&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfRestrictedCashAndCashEquivalentsTextBlock>
    <us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzM1_e4665700-2d59-4800-8a4b-17968101fe4f">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash, cash equivalents and restricted cash presented in the accompanying statements of cash flows consist of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.999%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&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 style="width:1.0%"/&gt;&lt;td style="width:11.619%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.622%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr style="height:12pt"&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;99,442&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57,448&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;Restricted cash&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;100&#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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;100&#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:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;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:'Arial',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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;99,542&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',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:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;57,548&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfCashAndCashEquivalentsTableTextBlock>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZToyN2YxZTU3MzhlMjM0ZTAyYWE2ODY3MzEyNTBlNDVkYy90YWJsZXJhbmdlOjI3ZjFlNTczOGUyMzRlMDJhYTY4NjczMTI1MGU0NWRjXzItNC0xLTEtMjEzNTM_fe3d79b4-43a9-49ab-98f7-3f316ac79c25"
      unitRef="usd">99442000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZToyN2YxZTU3MzhlMjM0ZTAyYWE2ODY3MzEyNTBlNDVkYy90YWJsZXJhbmdlOjI3ZjFlNTczOGUyMzRlMDJhYTY4NjczMTI1MGU0NWRjXzItNi0xLTEtMjEzNTM_e86fdae9-f7ba-46f5-bdd3-15febe39fdb6"
      unitRef="usd">57448000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:RestrictedCash
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZToyN2YxZTU3MzhlMjM0ZTAyYWE2ODY3MzEyNTBlNDVkYy90YWJsZXJhbmdlOjI3ZjFlNTczOGUyMzRlMDJhYTY4NjczMTI1MGU0NWRjXzMtNC0xLTEtMjEzNTM_84b66d6a-3328-42c3-8205-e52e2faed02a"
      unitRef="usd">100000</us-gaap:RestrictedCash>
    <us-gaap:RestrictedCash
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZToyN2YxZTU3MzhlMjM0ZTAyYWE2ODY3MzEyNTBlNDVkYy90YWJsZXJhbmdlOjI3ZjFlNTczOGUyMzRlMDJhYTY4NjczMTI1MGU0NWRjXzMtNi0xLTEtMjEzNTM_72c0338b-d160-4a5b-b055-5d237ae2f4ea"
      unitRef="usd">100000</us-gaap:RestrictedCash>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZToyN2YxZTU3MzhlMjM0ZTAyYWE2ODY3MzEyNTBlNDVkYy90YWJsZXJhbmdlOjI3ZjFlNTczOGUyMzRlMDJhYTY4NjczMTI1MGU0NWRjXzQtNC0xLTEtMjEzNTM_e90466fc-9cd8-4cbd-9ddf-4914871efe65"
      unitRef="usd">99542000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZToyN2YxZTU3MzhlMjM0ZTAyYWE2ODY3MzEyNTBlNDVkYy90YWJsZXJhbmdlOjI3ZjFlNTczOGUyMzRlMDJhYTY4NjczMTI1MGU0NWRjXzQtNi0xLTEtMjEzNTM_36f699cf-11b9-47e2-a3fe-ba731ad55bcb"
      unitRef="usd">57548000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzMw_f4fcc2db-e067-4739-a44e-3a3f75d371d9">Property and EquipmentProperty and equipment are stated at cost, net of depreciation and amortization. Depreciation is computed using the straight-line method over the estimated useful lives of the assets, generally between &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzYxOTQ_fef8e41c-9138-4dc9-99a1-0e0d49fa562d"&gt;three&lt;/span&gt; and five years. Leasehold improvements are amortized on a straight-line basis over the lesser of the estimated useful life or the remaining term of the related lease. Maintenance and repairs are charged to expense as incurred, and improvements and betterments are capitalized. When assets are retired or otherwise disposed of, the cost and accumulated depreciation are removed from the balance sheet and any resulting gain or loss is reflected in other income or expense in the statements of operations in the period realized.</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="i21ce32c182b1447b86e655f929f23b8a_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzYyMDE_61c4bf59-0206-4757-b278-62d15a4989c1">P5Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzI1_f2373002-0c1a-4bdc-b245-938923702caa">Long-lived Assets&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s long-lived assets are comprised principally of its property and equipment, finite lived intangible assets, and goodwill. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;If the Company identifies a change in the circumstances related to its long-lived assets, such as property and equipment and intangible assets (other than goodwill), that indicates the carrying value of any such asset may not be recoverable, the Company will perform an impairment analysis. A long-lived asset (other than goodwill) is deemed to be impaired when the undiscounted cash flows expected to be generated by the asset (or asset group) are less than the asset&#x2019;s carrying amount. Any required impairment loss would be measured as the amount by which the asset&#x2019;s carrying value exceeds its fair value, and would be recorded as a reduction in the carrying value of the related asset and a charge to operating expense. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill is reviewed for impairment annually (during the fourth quarter) or more frequently if indicators of impairment exist. As the Company operates in a single operating segment and reporting unit, the Company first assesses qualitative factors to determine whether it is more likely than not that the fair value of the reporting unit is less than its carrying amount as a basis for determining whether it is necessary to perform a quantitative assessment. If, after assessing qualitative factors, the Company determines it is not more likely than not that the fair value of a reporting unit is less than its carrying amount, then performing a quantitative assessment is unnecessary. If deemed necessary, a quantitative assessment compares the fair value of the reporting unit with its carrying amount, including goodwill. If the fair value of the reporting unit exceeds its carrying amount, goodwill is not considered impaired; otherwise, an impairment loss is recorded. No impairment was recognized for any of the periods presented.&lt;/span&gt;&lt;/div&gt;</us-gaap:GoodwillAndIntangibleAssetsPolicyTextBlock>
    <exdx:ClinicalStudyPolicyPolicyTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzQ3_c04ae88e-ac0b-4630-8a50-960b7fbce8bf">Clinical StudiesFrom time to time, the Company engages in efforts to scientifically measure and document the application and efficacy of its various testing products. These arrangements typically require the Company to pay a fee to a third-party scientific investigator (usually a physician or research institution) for each subject enrolled in a clinical study, and the Company accrues expenses associated with these efforts as subjects are enrolled in each study. Payments made prior to the completion of clinical study services are capitalized until the services are rendered. Expenses associated with clinical study activities are recorded in research and development expenses in the accompanying statement of operations.</exdx:ClinicalStudyPolicyPolicyTextBlock>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzQz_b407747c-9d41-489e-8119-e421c4e32447">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Substantially all of the Company's revenue has been derived from sales of its testing products and is primarily comprised of a high volume of relatively low-dollar transactions. The Company primarily markets its testing products to rheumatologists and their physician assistants in the United States. The healthcare professionals who order the Company's testing products and to whom test results are reported are generally not responsible for payment for these products. The parties that pay for these services (each, a payors) consist of healthcare insurers, government payors (primarily Medicare and Medicaid), client payors (i.e., hospitals, other laboratories, etc.), and patient self-pay. The Company's service is a single performance obligation that is completed upon the delivery of test results to the prescribing physician which triggers revenue recognition.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Payors are billed at the Company's list price. Net revenues recognized consist of amounts billed net of allowances for differences between amounts billed and the estimated consideration the Company expects to receive from such payors. The process for estimating revenues and the ultimate collection of accounts receivable involves significant judgment and estimation. The Company follows a standard process, which considers historical denial and collection experience, insurance reimbursement policies and other factors, to estimate allowances and implicit price concessions, recording adjustments in the current period as changes in estimates occur. Further adjustments to the allowances, based on actual receipts, are recorded upon settlement. The transaction price is estimated using an expected value method on a portfolio basis. The Company's portfolios are grouped per payor (i.e. each individual third-party insurance, Medicare, client payors, patient self-pay, etc.) and per test basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Collection of the Company's net revenues from payors is normally a function of providing complete and correct billing information to the healthcare insurers and generally occurs within 30 to 90 days of billing. Contracts do not contain significant financing components based on the typical period of time between performance of services and collection of consideration. Revenue recognized during the years ended December 31, 2021 and 2020 related to performance obligations satisfied in previous periods was approximately $0.7 million and $0.8 million, respectively, which relates to a change in estimate of the transaction price.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <us-gaap:ContractWithCustomerTimingOfSatisfactionOfPerformanceObligationAndPayment
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzQ0_89897982-d388-42dd-8e62-334d9ed3bd71">Collection of the Company's net revenues from payors is normally a function of providing complete and correct billing information to the healthcare insurers and generally occurs within 30 to 90 days of billing</us-gaap:ContractWithCustomerTimingOfSatisfactionOfPerformanceObligationAndPayment>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzEwOTk1MTE2NzExNjU_7ea02a0a-a157-4426-98ec-49424320ef06"
      unitRef="usd">700000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <us-gaap:ContractWithCustomerLiabilityRevenueRecognized
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzEwOTk1MTE2NzExNzU_743ac46d-ee23-435f-b525-85598f052a6f"
      unitRef="usd">800000</us-gaap:ContractWithCustomerLiabilityRevenueRecognized>
    <exdx:JointVentureQuarterlyPromotionFeePerPrescription
      contextRef="ic4f68d682be74db6b008dc3a090b9802_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzEwOTk1MTE2NjU1Njk_ba06359e-efdc-4261-90e6-1d1a6308bccd"
      unitRef="usd">750</exdx:JointVentureQuarterlyPromotionFeePerPrescription>
    <exdx:JointVentureQuarterlyPromotionFeePerPrescription
      contextRef="ieb9528b3f3734591a14281d420582f40_I20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzEwOTk1MTE2NjU1NzM_2a994684-ce1b-4cb7-bfa8-5e10eb1a3d34"
      unitRef="usd">1250</exdx:JointVentureQuarterlyPromotionFeePerPrescription>
    <exdx:JointVentureQuarterlyPromotionFee
      contextRef="i7ab31b20cbc349cbaca32f303bd2578a_I20210331"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzEwOTk1MTE2NjU1ODg_6964210d-c9e6-455f-ab89-3c7fcbb83562"
      unitRef="usd">300000</exdx:JointVentureQuarterlyPromotionFee>
    <exdx:JointVentureQuarterlyPromotionFee
      contextRef="i43718092b0c0471b96ac09a14e1c6587_I20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzEwOTk1MTE2NjU1ODg_a6110098-8fdb-4451-b151-acb54fd3a62c"
      unitRef="usd">300000</exdx:JointVentureQuarterlyPromotionFee>
    <exdx:JointVentureTerminationConsiderationReceivable
      contextRef="iddbdea29001e45c1b56260676dc812f4_I20210831"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzEwOTk1MTE2NjU2MDE_8e935798-9b45-4fc4-a9ee-b8418a08c5a6"
      unitRef="usd">600000</exdx:JointVentureTerminationConsiderationReceivable>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ic9bf0012e6c14d8bb64f9c0d82b2c6b0_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzE3Njgw_0b01e877-8430-42a7-a7be-3ebde88539b9"
      unitRef="usd">1200000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ia3f9d0fa94ec4ad9816afc3fb4c761b7_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzE3Njk1_63c40343-8f66-477c-ad34-6da14314ff8c"
      unitRef="usd">5100000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:ResearchAndDevelopmentExpensePolicy
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzMx_84016de2-9498-450e-8f94-58c5f8cd6f4d">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Research and Development&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Costs associated with research and development activities are expensed as incurred and include, but are not limited to, personnel-related expenses, including stock-based compensation expense, materials, laboratory supplies, consulting costs, costs associated with setting up and conducting clinical studies and allocated overhead including rent and utilities.&lt;/span&gt;&lt;/div&gt;</us-gaap:ResearchAndDevelopmentExpensePolicy>
    <us-gaap:AdvertisingCostsPolicyTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzM4_8f11c939-5622-437c-a9c2-a39f992f2434">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Advertising and Marketing Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Costs associated with advertising and marketing activities are expensed as incurred. Total advertising and marketing costs were approximately $1.7 million and $1.3 million for the years ended December&#160;31, 2021 and 2020, respectively, and are included in selling, general and administrative expenses in the accompanying statements of operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzE4NDUw_e3d5bbe0-1dbd-4f4e-8a8a-e34a79dcf7e3"
      unitRef="usd">1700000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzE4NDY1_a8e74891-3477-4beb-8c31-131db12db63b"
      unitRef="usd">1300000</us-gaap:AdvertisingExpense>
    <us-gaap:CostOfRevenue
      contextRef="i9e983f14f49f48fb88a4fb55c4d4f310_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzE4ODA3_c8f5d9dd-c64f-4e97-b554-26699750e98d"
      unitRef="usd">2100000</us-gaap:CostOfRevenue>
    <us-gaap:CostOfRevenue
      contextRef="i84e2dc0a1fa34a72abfedd5914668cb3_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzEwOTk1MTE2NTc1OTc_aa2df5d2-da5d-4232-951e-8035608b785c"
      unitRef="usd">1400000</us-gaap:CostOfRevenue>
    <us-gaap:EmployeeStockOwnershipPlanESOPPolicy
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzI2_98a27a8e-68e3-40af-a368-031f6fee7983">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes compensation expense for all stock-based awards to employees and directors based on the grant-date estimated fair values over the requisite service period of the awards (usually the vesting period) on a &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;straight-line basis. The fair value of stock options and purchases under the Company's 2019 Employee Stock Purchase Plan (ESPP) rights is determined using the Black-Scholes-Merton (BSM) option pricing model, which requires management to make certain assumptions regarding a number of complex and subjective variables. Equity award forfeitures are recorded as they occur.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The BSM option pricing model incorporates various estimates, including the fair value of the Company's common stock, expected volatility, expected term and risk-free interest rates. The weighted-average expected term of options was calculated using the simplified method. The risk-free interest rate for periods within the contractual term of the option is based on the U.S. Treasury yield in effect at the time of grant. The dividend yield was zero, as the Company has never declared or paid dividends and has no plans to do so in the foreseeable future.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of each restricted stock unit is determined on the grant date using the closing price of the Company's common stock on the grant date and generally vest from the grant date in four equal annual installments subject to the holder's continued service with the Company. The Company issues new shares to satisfy restricted stock units upon vesting.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of the Company's common stock is determined by using the closing price of its common stock on the corresponding date.&lt;/span&gt;&lt;/div&gt;</us-gaap:EmployeeStockOwnershipPlanESOPPolicy>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzIwMjQ1_d6ac22ae-bf2e-43ff-b226-c7e40121f666"
      unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <exdx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAnnualInstallments
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzIxOTkwMjMyOTkxMjI_649c80f0-19df-4535-8bdf-01700316fc08"
      unitRef="installment">4</exdx:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfAnnualInstallments>
    <us-gaap:ComprehensiveIncomePolicyPolicyTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzM5_c90df965-ec35-4d65-92aa-a0ebf39d4879">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Comprehensive Loss&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Comprehensive loss is defined as a change in equity of a business enterprise during a period, resulting from transactions from nonowner sources. There have been no items qualifying as other comprehensive loss and, therefore, for all periods presented, the Company's comprehensive loss was the same as its reported net loss.&lt;/span&gt;&lt;/div&gt;</us-gaap:ComprehensiveIncomePolicyPolicyTextBlock>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzI3_8f3f2f66-0e44-4f46-aeb1-a6f4089b838c">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company accounts for income taxes under the asset and liability method, which requires the recognition of deferred tax assets and liabilities for the expected future tax consequences of events that have been included in the financial statements. Under this method, deferred tax assets and liabilities are determined on the basis of the differences between the financial statements and tax basis of assets and liabilities using enacted tax rates in effect for the year in which the differences are expected to reverse. The effect of a change in tax rates on deferred tax assets and liabilities is recognized in income in the period that includes the enactment date. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes net deferred tax assets to the extent that the Company believes these assets are more likely than not to be realized. In making such a determination, management considers all available positive and negative evidence, including future reversals of existing taxable temporary differences, projected future taxable income, tax-planning strategies, and results of recent operations. If management determines that the Company would be able to realize its deferred tax assets in the future in excess of their net recorded amount, management would adjust the deferred tax asset valuation allowance, which would reduce the provision for income taxes. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company records uncertain tax positions on the basis of a two-step process whereby (i) management determines whether it is more likely than not that the tax positions will be sustained on the basis of the technical merits of the position and (ii) for those tax positions that meet the more-likely-than-not recognition threshold, management recognizes the largest amount of tax benefit that is more than 50% likely to be realized upon ultimate settlement with the related tax authority. The Company recognizes interest and penalties related to unrecognized tax benefits within income tax expense. Any accrued interest and penalties are included within the related tax liability.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzMy_bf55d790-f6d0-4ef6-b23e-6d50a10eefe0">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Net Loss Per Share&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic net loss per share attributable to common stockholders is calculated by dividing the net loss attributable to common stockholders by the weighted-average number of common shares outstanding during the period. Diluted net loss per share attributable to common stockholders is computed by dividing the net loss attributable to common stockholders by the weighted-average number of common stock equivalents outstanding for the period determined using the treasury-stock and if-converted methods. The weighted-average number of shares in 2021 used to compute basic and diluted shares includes shares issuable upon the exercise of pre-funded warrants at a nominal price. Potentially dilutive common stock equivalents are comprised of warrants for the purchase of common stock, options and restricted stock units outstanding under the Company's 2019 Incentive Award Plan (the 2019 Plan) and shares of the Company's common stock pursuant to the ESPP. For the years ended December&#160;31, 2021 and 2020, &lt;/span&gt;&lt;/div&gt;there is no difference in the number of shares used to calculate basic and diluted shares outstanding as the inclusion of the potentially dilutive securities would be antidilutive.</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzQw_0e003dac-4c9c-4bf0-a5ac-0b186f8fa0e7">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Potentially dilutive securities not included in the calculation of diluted net loss per share because to do so would be anti-dilutive are as follows (in common stock equivalent shares):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:67.905%"/&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;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.666%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.669%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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="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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Warrants to purchase common stock&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;409,108&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;426,827&#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="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock options&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,014,330&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,975,761&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Restricted stock units&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;415,325&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Employee stock purchase plan&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;20,193&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;11,640&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total&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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,858,956&#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 colspan="2" style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,414,228&#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;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i3da35687856c48539a9dde99b6897fd6_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTozYzAzMzFkYzdkZDU0MjI2ODBjYWViYzI3M2JlZjk0MC90YWJsZXJhbmdlOjNjMDMzMWRjN2RkNTQyMjY4MGNhZWJjMjczYmVmOTQwXzQtNi0xLTEtMjEzNTM_eb43688c-01bf-435f-b123-3e9009decb8a"
      unitRef="shares">409108</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i7d544e05fd70453dbd49e33f4f48b614_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTozYzAzMzFkYzdkZDU0MjI2ODBjYWViYzI3M2JlZjk0MC90YWJsZXJhbmdlOjNjMDMzMWRjN2RkNTQyMjY4MGNhZWJjMjczYmVmOTQwXzQtOC0xLTEtMjEzNTM_360ee53e-424e-448c-b6ce-bf75e3f399bb"
      unitRef="shares">426827</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="id4affae0b59b49c7a0a929d85bf9141b_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTozYzAzMzFkYzdkZDU0MjI2ODBjYWViYzI3M2JlZjk0MC90YWJsZXJhbmdlOjNjMDMzMWRjN2RkNTQyMjY4MGNhZWJjMjczYmVmOTQwXzUtNi0xLTEtMjEzNTM_d08c95c6-8464-48e3-846f-fea6f9be9fc2"
      unitRef="shares">2014330</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i085d1d0b16694f2f8ef00fbd68444a0c_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTozYzAzMzFkYzdkZDU0MjI2ODBjYWViYzI3M2JlZjk0MC90YWJsZXJhbmdlOjNjMDMzMWRjN2RkNTQyMjY4MGNhZWJjMjczYmVmOTQwXzUtOC0xLTEtMjEzNTM_d53dea2f-be2b-42f7-b925-e4a1bcf47da3"
      unitRef="shares">1975761</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i88c6ac57cfb34afaabadb43d5c0f77bd_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTozYzAzMzFkYzdkZDU0MjI2ODBjYWViYzI3M2JlZjk0MC90YWJsZXJhbmdlOjNjMDMzMWRjN2RkNTQyMjY4MGNhZWJjMjczYmVmOTQwXzYtNi0xLTEtMjQ0NzY_1d5a3a2d-0a9c-4e98-b589-12a38165db35"
      unitRef="shares">415325</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="id9fffc83ea824ff28f77cfcd400a4c86_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTozYzAzMzFkYzdkZDU0MjI2ODBjYWViYzI3M2JlZjk0MC90YWJsZXJhbmdlOjNjMDMzMWRjN2RkNTQyMjY4MGNhZWJjMjczYmVmOTQwXzYtOC0xLTEtMjQ0NzY_c2adfe3d-73fd-49cb-bc5e-cacbdfb5153e"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="iac6b2d16027a4576a026b904556bdae9_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTozYzAzMzFkYzdkZDU0MjI2ODBjYWViYzI3M2JlZjk0MC90YWJsZXJhbmdlOjNjMDMzMWRjN2RkNTQyMjY4MGNhZWJjMjczYmVmOTQwXzYtNi0xLTEtMjEzNTM_b7be425b-feb6-49f6-bc02-788785c75598"
      unitRef="shares">20193</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ibd62756e20844efa8284a88ba74e0e1c_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTozYzAzMzFkYzdkZDU0MjI2ODBjYWViYzI3M2JlZjk0MC90YWJsZXJhbmdlOjNjMDMzMWRjN2RkNTQyMjY4MGNhZWJjMjczYmVmOTQwXzYtOC0xLTEtMjEzNTM_55bf4962-a465-4324-a2c2-bd039c5df387"
      unitRef="shares">11640</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTozYzAzMzFkYzdkZDU0MjI2ODBjYWViYzI3M2JlZjk0MC90YWJsZXJhbmdlOjNjMDMzMWRjN2RkNTQyMjY4MGNhZWJjMjczYmVmOTQwXzctNi0xLTEtMjEzNTM_1279ad3b-58ed-440d-9f52-21859f17f2e4"
      unitRef="shares">2858956</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90YWJsZTozYzAzMzFkYzdkZDU0MjI2ODBjYWViYzI3M2JlZjk0MC90YWJsZXJhbmdlOjNjMDMzMWRjN2RkNTQyMjY4MGNhZWJjMjczYmVmOTQwXzctOC0xLTEtMjEzNTM_06a5b314-ac5c-4a06-aeb4-c0bcc8499a46"
      unitRef="shares">2414228</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:SegmentReportingPolicyPolicyTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzQ1_14b200c1-497b-493c-a84d-bd59974eb887">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Segment Reporting&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating segments are identified as components of an enterprise about which separate discrete financial information is available for evaluation by the chief operating decision-maker in making decisions regarding resource allocation and assessing performance. The Company views its operations as, and manages its business in, one operating segment.&lt;/span&gt;&lt;/div&gt;</us-gaap:SegmentReportingPolicyPolicyTextBlock>
    <us-gaap:NumberOfOperatingSegments
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI1MzI2_c115a920-4ab5-4e84-beed-62c74e2306d2"
      unitRef="segment">1</us-gaap:NumberOfOperatingSegments>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjEvZnJhZzo1MDk5OTgwNWQwNzE0M2Y1YTlhYzQ1MWQ5NjUxODAwOC90ZXh0cmVnaW9uOjUwOTk5ODA1ZDA3MTQzZjVhOWFjNDUxZDk2NTE4MDA4XzI5NzMz_5c73ae41-ef29-4a8f-b764-214d37e331f4">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;From time to time, new accounting pronouncements are issued by the Financial Accounting Standards Board (FASB), or other standard setting bodies and adopted by the Company as of the specified effective date. Under the Jumpstart Our Business Startups Act of 2012 (JOBS Act), the Company meets the definition of an emerging growth company. The Company has elected to use the extended transition period for complying with new or revised accounting standards pursuant to Section 107(b) of the JOBS Act. Unless otherwise discussed, the impact of recently issued standards that are not yet effective will not have a material impact on the Company's financial position or results of operations upon adoption.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In February 2016, the FASB issued Accounting Standards Update (ASU) 2016-02,&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;&#160;Leases&#160;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(Topic 842). The new topic supersedes Topic 840,&#160;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Leases&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, and increases transparency and comparability among organizations by recognizing lease assets and lease liabilities on the balance sheet and requires disclosures of key information about leasing arrangements. In July 2018, the FASB issued ASU 2018-10, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Codification Improvements to Topic 842&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, which provides narrow amendments to clarify how to apply certain aspects of the new lease standard, and ASU 2018-11, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Leases: Targeted Improvements&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;, which was issued to provide relief to companies from restating comparative periods. Pursuant to this ASU, in the period of adoption the Company will not restate comparative periods presented in its financial statements. The effective date of this guidance for public companies is for reporting periods beginning after December&#160;15, 2018. In June 2020, the FASB issued ASU 2020-05, which delays the adoption of ASU 2016-02 for non-public entities to fiscal years beginning after December 15, 2021, and interim periods beginning after December 15, 2022. As an emerging growth company as defined in the JOBS Act, the Company has elected to early adopt this ASU as of January 1, 2022. Topic 842 mandates a modified retrospective transition method. The Company intends to adopt the new lease standard using a cumulative effect to accumulated deficit and will elect the package of practical expedients, which among other things will allow the Company to carry forward its historical lease classification. The Company is in the process of completing its evaluation of the effect that the adoption of this ASU will have on its financial statements. The Company currently believes the most significant change will be &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;related to the recognition of a new right-of-use asset and lease liability at January 1, 2022 on the Company's balance sheet for its office and laboratory space operating leases.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Recently Adopted Accounting Standards&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2019, the FASB issued ASU 2019-12, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Simplifying the Accounting for Income Taxes&lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;. The new guidance removes certain exceptions to the general principles of ASC 740 in order to simplify the complexities of its application. These changes include eliminations to the exceptions for intraperiod tax allocation, recognizing deferred tax liabilities related to outside basis differences, and year-to-date losses in interim periods, among others. The effective date of this guidance for public companies is for fiscal years, and interim period within those fiscal years, beginning after December 15, 2020. The Company adopted this guidance on January 1, 2021, and the adoption did not have a material impact on its financial statements.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2021, the FASB issued ASU 2021-10, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Government Assistance &lt;/span&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(Topic 832). The update requires certain annual disclosures about transactions with a government that are accounted for by applying a grant or contribution model by analogy. The amendments in this update are effective for fiscal years beginning after December 15, 2021. Early application of the amendments is permitted. The Company early adopted these disclosure requirements and applied them to its disclosure of the funding received as part of the Coronavirus Aid, Relief, and Economic Security Act (CARES Act) in 2020.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <exdx:PrepaidExpensesAndOtherCurrentAssetsPropertyPlantAndEquipmentAndAccruedLiabilitiesTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90ZXh0cmVnaW9uOjcxYjUyMzI2N2EzODQ4NDQ4MDkyMmE1OWEzZDM0MWM2XzY5MA_1fb59ac4-a1cc-45a2-aade-bf6c93ae61f6">Other Financial Information&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Prepaid Expenses and Other Current Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Prepaid expenses and other current assets consist of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.151%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.543%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.546%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Diagnostic&#160;testing&#160;supplies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,091&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,203&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Prepaid product royalties&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;49&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;68&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Prepaid maintenance and insurance contracts&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,229&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Other prepaid and other current assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;490&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;659&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Prepaid and other current assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;3,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,159&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Property and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment consist of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.151%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.543%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.546%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Furniture&#160;and&#160;fixtures&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;83&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;64&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Laboratory equipment&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,361&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,679&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Computer equipment and software&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,206&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;927&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,151&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,072&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Construction in progress&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,855&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total property and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;8,656&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,043&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Less: accumulated depreciation and amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(3,884)&lt;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2,941)&lt;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Property and equipment, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,772&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,102&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Depreciation and amortization expense for the years ended December&#160;31, 2021 and 2020, was approximately $0.9 million and $0.5 million, respectively. At December&#160;31, 2021 and December 31, 2020, the gross book value of assets under capital lease was $2.5 million and $1.2 million, respectively, and is classified in "Laboratory equipment" in the table above. At December&#160;31, 2021, $1.5 million relates to leasehold improvements in connection &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;with the conversion of the Company's warehouse space into additional clinical laboratory space and research and development facility space, which is expected to be placed in service in calendar year 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Accrued and Other Current Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued and other current liabilities consist of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.151%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.543%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.546%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accrued&#160;payroll&#160;and&#160;related&#160;expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;3,589&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accrued interest&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;139&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;147&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accrued purchases of goods and services&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;510&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;311&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accrued royalties&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;180&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;221&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accrued clinical study activity&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;254&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;228&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Capital lease obligations, current portion&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;587&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;308&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Other accrued 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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,108&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;953&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accrued and other current liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;6,826&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,757&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</exdx:PrepaidExpensesAndOtherCurrentAssetsPropertyPlantAndEquipmentAndAccruedLiabilitiesTextBlock>
    <us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90ZXh0cmVnaW9uOjcxYjUyMzI2N2EzODQ4NDQ4MDkyMmE1OWEzZDM0MWM2XzY5MQ_e073c41e-41e4-46db-aa4f-ecdace2a9332">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Prepaid expenses and other current assets consist of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.151%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.543%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.546%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Diagnostic&#160;testing&#160;supplies&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,091&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,203&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Prepaid product royalties&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;49&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;68&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Prepaid maintenance and insurance contracts&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,229&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Other prepaid and other current assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;490&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;659&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Prepaid and other current assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;3,638&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,159&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DeferredCostsCapitalizedPrepaidAndOtherAssetsDisclosureTextBlock>
    <us-gaap:OtherAssetsCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTozMzViYmJjNDE1OWU0Y2E2YTFlYzA0M2NlZDVkMmY1Ni90YWJsZXJhbmdlOjMzNWJiYmM0MTU5ZTRjYTZhMWVjMDQzY2VkNWQyZjU2XzItMi0xLTEtMjEzNTM_68f862a3-602b-4eff-abe7-c5574f8d4d67"
      unitRef="usd">1091000</us-gaap:OtherAssetsCurrent>
    <us-gaap:OtherAssetsCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTozMzViYmJjNDE1OWU0Y2E2YTFlYzA0M2NlZDVkMmY1Ni90YWJsZXJhbmdlOjMzNWJiYmM0MTU5ZTRjYTZhMWVjMDQzY2VkNWQyZjU2XzItNC0xLTEtMjEzNTM_9d27f413-a9da-46af-9c2b-d677df663091"
      unitRef="usd">1203000</us-gaap:OtherAssetsCurrent>
    <us-gaap:PrepaidRoyalties
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTozMzViYmJjNDE1OWU0Y2E2YTFlYzA0M2NlZDVkMmY1Ni90YWJsZXJhbmdlOjMzNWJiYmM0MTU5ZTRjYTZhMWVjMDQzY2VkNWQyZjU2XzMtMi0xLTEtMjEzNTM_07105df4-5825-43d9-82b5-fb33b56240c8"
      unitRef="usd">49000</us-gaap:PrepaidRoyalties>
    <us-gaap:PrepaidRoyalties
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTozMzViYmJjNDE1OWU0Y2E2YTFlYzA0M2NlZDVkMmY1Ni90YWJsZXJhbmdlOjMzNWJiYmM0MTU5ZTRjYTZhMWVjMDQzY2VkNWQyZjU2XzMtNC0xLTEtMjEzNTM_fadb8af7-7d61-4b2f-a9b6-bae11e58173f"
      unitRef="usd">68000</us-gaap:PrepaidRoyalties>
    <exdx:PrepaidMaintenanceAndInsuranceContracts
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTozMzViYmJjNDE1OWU0Y2E2YTFlYzA0M2NlZDVkMmY1Ni90YWJsZXJhbmdlOjMzNWJiYmM0MTU5ZTRjYTZhMWVjMDQzY2VkNWQyZjU2XzQtMi0xLTEtMjEzNTM_3f302d6c-3c27-4475-b34d-167ed6668792"
      unitRef="usd">2008000</exdx:PrepaidMaintenanceAndInsuranceContracts>
    <exdx:PrepaidMaintenanceAndInsuranceContracts
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTozMzViYmJjNDE1OWU0Y2E2YTFlYzA0M2NlZDVkMmY1Ni90YWJsZXJhbmdlOjMzNWJiYmM0MTU5ZTRjYTZhMWVjMDQzY2VkNWQyZjU2XzQtNC0xLTEtMjEzNTM_842a5cfd-730d-4e46-bf62-b5a47b241942"
      unitRef="usd">2229000</exdx:PrepaidMaintenanceAndInsuranceContracts>
    <us-gaap:OtherPrepaidExpenseCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTozMzViYmJjNDE1OWU0Y2E2YTFlYzA0M2NlZDVkMmY1Ni90YWJsZXJhbmdlOjMzNWJiYmM0MTU5ZTRjYTZhMWVjMDQzY2VkNWQyZjU2XzUtMi0xLTEtMjEzNTM_c1e00789-fe73-4952-b073-54ff0279ef03"
      unitRef="usd">490000</us-gaap:OtherPrepaidExpenseCurrent>
    <us-gaap:OtherPrepaidExpenseCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTozMzViYmJjNDE1OWU0Y2E2YTFlYzA0M2NlZDVkMmY1Ni90YWJsZXJhbmdlOjMzNWJiYmM0MTU5ZTRjYTZhMWVjMDQzY2VkNWQyZjU2XzUtNC0xLTEtMjEzNTM_d924056a-cd6d-453f-b30d-3e02ba349187"
      unitRef="usd">659000</us-gaap:OtherPrepaidExpenseCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTozMzViYmJjNDE1OWU0Y2E2YTFlYzA0M2NlZDVkMmY1Ni90YWJsZXJhbmdlOjMzNWJiYmM0MTU5ZTRjYTZhMWVjMDQzY2VkNWQyZjU2XzYtMi0xLTEtMjEzNTM_d9290365-773e-4dbc-9f3d-7e09db833e5d"
      unitRef="usd">3638000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTozMzViYmJjNDE1OWU0Y2E2YTFlYzA0M2NlZDVkMmY1Ni90YWJsZXJhbmdlOjMzNWJiYmM0MTU5ZTRjYTZhMWVjMDQzY2VkNWQyZjU2XzYtNC0xLTEtMjEzNTM_faeb62df-9ef6-4594-9597-564f12adf206"
      unitRef="usd">4159000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90ZXh0cmVnaW9uOjcxYjUyMzI2N2EzODQ4NDQ4MDkyMmE1OWEzZDM0MWM2XzY5Mg_b6eab949-d2fa-4432-a1af-3ebeeba7fe97">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment consist of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.151%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.543%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.546%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Furniture&#160;and&#160;fixtures&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;83&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;64&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Laboratory equipment&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,361&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,679&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Computer equipment and software&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,206&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;927&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,151&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,072&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Construction in progress&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,855&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total property and equipment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;8,656&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,043&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Less: accumulated depreciation and amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(3,884)&lt;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(2,941)&lt;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Property and equipment, net&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,772&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,102&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i3e2b3b6a148c4253996d58d6cd823297_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzItMi0xLTEtMjEzNTM_81e8534f-a3b2-4356-b928-0f0dc52e94d4"
      unitRef="usd">83000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i7526f391427d45ea873dfa6c626ac805_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzItNC0xLTEtMjEzNTM_b7b59abf-c1f4-4aaa-aa71-8c9db626f0dd"
      unitRef="usd">64000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i7e2fced401f84d9d855cd68c2a92d495_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzMtMi0xLTEtMjEzNTM_fe5efb91-2127-4307-b1a3-1faacf2aa41d"
      unitRef="usd">4361000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="iad3c4ac47a7044aca08319865f77bce1_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzMtNC0xLTEtMjEzNTM_d82e871a-45c8-43aa-a356-0762195e3224"
      unitRef="usd">2679000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ib72a58d5918749a8b10696a4c1caf048_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzQtMi0xLTEtMjEzNTM_738d0244-e5af-46d9-972e-501699716eaa"
      unitRef="usd">1206000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i0d2b410bf1874ce0a832f21534a96236_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzQtNC0xLTEtMjEzNTM_d3116410-16c8-4a5e-833e-71be7b25724b"
      unitRef="usd">927000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ifba18aaca8f64d58a5abc8aa3bc55ca0_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzUtMi0xLTEtMjEzNTM_2e27e541-9837-46bf-9340-98e7860395ba"
      unitRef="usd">1151000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i58959814a81948baa356ab8847eaf364_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzUtNC0xLTEtMjEzNTM_2e3a7b20-f63b-4de5-a9c9-abb5d4a37669"
      unitRef="usd">1072000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i1aaefcb00d594d7899f7291e0ab6e87d_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzYtMi0xLTEtMjEzNTM_162d12d6-3651-48b8-bda2-06814c86a048"
      unitRef="usd">1855000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ic38792d5f9cd4daa8e071405abfb7e30_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzYtNC0xLTEtMjEzNTM_18b3730c-6169-4d84-a562-de18af4952f9"
      unitRef="usd">301000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzctMi0xLTEtMjEzNTM_60c08161-4106-4b37-8ca4-6d9a4a1632c2"
      unitRef="usd">8656000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzctNC0xLTEtMjEzNTM_711fc77f-6717-4c15-9c0b-5ff9803a6a5e"
      unitRef="usd">5043000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzgtMi0xLTEtMjEzNTM_31d9a1b1-9854-4f37-8e3b-ca1ef23793d6"
      unitRef="usd">3884000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzgtNC0xLTEtMjEzNTM_66331424-37fe-4ae9-98dc-d26f8529d139"
      unitRef="usd">2941000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzktMi0xLTEtMjEzNTM_83e316d7-1162-4aa3-9d8f-6d182c6ae3e1"
      unitRef="usd">4772000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo5MTU3YWNjNjgxMzI0YjJkODhkMzFjNTU5ODk3ZWRiMi90YWJsZXJhbmdlOjkxNTdhY2M2ODEzMjRiMmQ4OGQzMWM1NTk4OTdlZGIyXzktNC0xLTEtMjEzNTM_cb6b753d-d54e-4cdd-948e-9ce353ecab79"
      unitRef="usd">2102000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90ZXh0cmVnaW9uOjcxYjUyMzI2N2EzODQ4NDQ4MDkyMmE1OWEzZDM0MWM2XzM1Mg_ae8588e5-ef76-4fe8-8634-c5499c9da5eb"
      unitRef="usd">900000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90ZXh0cmVnaW9uOjcxYjUyMzI2N2EzODQ4NDQ4MDkyMmE1OWEzZDM0MWM2XzM2Nw_d748b197-3cd6-45c7-bb2b-062af1122bfe"
      unitRef="usd">500000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:CapitalLeasedAssetsGross
      contextRef="i31aee7e95be8470386bca9e8ac634e7e_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90ZXh0cmVnaW9uOjcxYjUyMzI2N2EzODQ4NDQ4MDkyMmE1OWEzZDM0MWM2XzQ2Mg_b9b987f4-a5bc-4919-a0b1-7a644c959d58"
      unitRef="usd">2500000</us-gaap:CapitalLeasedAssetsGross>
    <us-gaap:CapitalLeasedAssetsGross
      contextRef="i3c7e1092e0654fca915f791ba0127f14_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90ZXh0cmVnaW9uOjcxYjUyMzI2N2EzODQ4NDQ4MDkyMmE1OWEzZDM0MWM2XzQ3Nw_34cd5bcd-8d91-4f02-9fbb-930badb918fc"
      unitRef="usd">1200000</us-gaap:CapitalLeasedAssetsGross>
    <us-gaap:CapitalLeasedAssetsGross
      contextRef="ifba18aaca8f64d58a5abc8aa3bc55ca0_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90ZXh0cmVnaW9uOjcxYjUyMzI2N2EzODQ4NDQ4MDkyMmE1OWEzZDM0MWM2XzEwOTk1MTE2Mjg1MTA_454ae280-2edb-43b4-9ff7-101e930274ae"
      unitRef="usd">1500000</us-gaap:CapitalLeasedAssetsGross>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90ZXh0cmVnaW9uOjcxYjUyMzI2N2EzODQ4NDQ4MDkyMmE1OWEzZDM0MWM2XzY5Mw_7652175a-e30c-4f70-8c9e-61c2de4ee6f2">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued and other current liabilities consist of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:66.151%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.543%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.546%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accrued&#160;payroll&#160;and&#160;related&#160;expenses&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,048&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;3,589&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accrued interest&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;139&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;147&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accrued purchases of goods and services&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;510&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;311&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accrued royalties&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;180&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;221&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accrued clinical study activity&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;254&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;228&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Capital lease obligations, current portion&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;587&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;308&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Other accrued 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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,108&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;953&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accrued and other current liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;6,826&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,757&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:AccruedSalariesCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzItMi0xLTEtMjEzNTM_71807e04-db31-4196-8c5c-8a0eae3549c7"
      unitRef="usd">4048000</us-gaap:AccruedSalariesCurrent>
    <us-gaap:AccruedSalariesCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzItNC0xLTEtMjEzNTM_b1d06cea-88a7-405e-8c20-010af8754015"
      unitRef="usd">3589000</us-gaap:AccruedSalariesCurrent>
    <us-gaap:InterestPayableCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzQtMi0xLTEtMjEzNTM_02c77c05-8a00-47c3-b274-728151d46066"
      unitRef="usd">139000</us-gaap:InterestPayableCurrent>
    <us-gaap:InterestPayableCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzQtNC0xLTEtMjEzNTM_39597ec2-4485-4a56-99dc-8d6cb85cb73e"
      unitRef="usd">147000</us-gaap:InterestPayableCurrent>
    <exdx:AccruedPurchaseGoodsAndServicesCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzUtMi0xLTEtMjEzNTM_e8ea95c8-184c-403a-85a6-9b28f0ddfb06"
      unitRef="usd">510000</exdx:AccruedPurchaseGoodsAndServicesCurrent>
    <exdx:AccruedPurchaseGoodsAndServicesCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzUtNC0xLTEtMjEzNTM_93a9d5fc-df38-4316-981c-764ffcaec9d9"
      unitRef="usd">311000</exdx:AccruedPurchaseGoodsAndServicesCurrent>
    <us-gaap:AccruedRoyaltiesCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzYtMi0xLTEtMjEzNTM_9c867926-359b-4d5e-916a-21f64c89d8b7"
      unitRef="usd">180000</us-gaap:AccruedRoyaltiesCurrent>
    <us-gaap:AccruedRoyaltiesCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzYtNC0xLTEtMjEzNTM_1d1f0521-6939-4a04-9b31-3efdb3190c31"
      unitRef="usd">221000</us-gaap:AccruedRoyaltiesCurrent>
    <exdx:AccruedLiabilitiesClinicalStudyCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzctMi0xLTEtMjEzNTM_655da4ed-2fcc-447c-b228-5035fbf3d878"
      unitRef="usd">254000</exdx:AccruedLiabilitiesClinicalStudyCurrent>
    <exdx:AccruedLiabilitiesClinicalStudyCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzctNC0xLTEtMjEzNTM_0b1fbc46-06a7-48f6-b77b-6c6be7782eee"
      unitRef="usd">228000</exdx:AccruedLiabilitiesClinicalStudyCurrent>
    <us-gaap:CapitalLeaseObligationsCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzgtMi0xLTEtMjEzNTM_6c506779-41fa-4963-9d7e-32ae38bc302a"
      unitRef="usd">587000</us-gaap:CapitalLeaseObligationsCurrent>
    <us-gaap:CapitalLeaseObligationsCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzgtNC0xLTEtMjEzNTM_b50aa736-b0ba-4c87-935e-f8e708fa1c25"
      unitRef="usd">308000</us-gaap:CapitalLeaseObligationsCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzktMi0xLTEtMjEzNTM_60ca4dba-7d42-4a07-bc37-b4cf555acfa8"
      unitRef="usd">1108000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzktNC0xLTEtMjEzNTM_6ca1fc88-80ee-44a3-9d9b-986ea7f2e01d"
      unitRef="usd">953000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzEwLTItMS0xLTIxMzUz_7b7cbbdf-359c-4e37-85f4-1ec5826d2fae"
      unitRef="usd">6826000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjQvZnJhZzo3MWI1MjMyNjdhMzg0ODQ0ODA5MjJhNTlhM2QzNDFjNi90YWJsZTo1Y2IxZDhhZjg3N2U0ZmM1YjQ5OTliMTZiODQwN2Y0NS90YWJsZXJhbmdlOjVjYjFkOGFmODc3ZTRmYzViNDk5OWIxNmI4NDA3ZjQ1XzEwLTQtMS0xLTIxMzUz_f9f4d8bf-398a-473c-9d6e-c54bc78ee1a4"
      unitRef="usd">5757000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzUxNzI_c9a427b6-3b48-4fd1-a442-7fc62f342cbb">Borrowings&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;2017 Term Loan&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In September 2017, the Company executed a term loan agreement (the 2017 Term Loan) with Innovatus Life Sciences Lending Fund I, LP (Innovatus) and borrowed $20.0 million, $17.8 million of which was immediately used to repay the Company's existing loan with Capital Royalty Partners II L.P. and its affiliates. On December&#160;7, 2018, the Company borrowed an additional $5.0 million under the 2017 Term Loan. The 2017 Term Loan was subsequently amended in November 2019 and November 2021. At December&#160;31, 2021, no additional amounts remain available to borrow under the 2017 Term Loan. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2021, the Company executed the Second Amendment to the Loan and Security Agreement (the 2017 Loan Amendment). The interest rate on all borrowings under the 2017 Loan Amendment is 8.0%, of which 2.0% is paid in-kind in the form of additional term loans (PIK Loans) until December of 2024, after which interest accrues at an annual rate of 8.0%. The Company has estimated the effective interest rate of this loan to be approximately 8.5%. Accrued interest is due and payable monthly, unless the Company elects to pay paid-in-kind interest. The outstanding principal and accrued interest on the 2017 Loan Amendment will be repaid in twenty-four equal monthly installments commencing in December 2024. Upon repayment of the final installment under the 2017 Loan Amendment, the Company is required to pay an additional fee of $1.0 million. This obligation is being accreted into interest expense over the term of Loan Amendment using the effective interest method. For each of the years ended December&#160;31, 2021 and 2020, the Company issued PIK Loans totaling $0.5 million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The 2017 Loan Amendment requires a prepayment premium of 3% of the aggregate outstanding principal. The prepayment premium decreases by 1% on November&#160;1, 2022, 2023 and 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The 2017 Loan Amendment is collateralized by a first priority security interest in substantially all of the Company's assets, including intellectual property. The affirmative covenants of the 2017 Loan Amendment require that the Company timely file taxes, maintain good standing and government compliance, maintain liability and other insurance, provide prompt notification of significant corporate events, and furnish audited financial statements within 150 days of fiscal year end without qualification as to the scope of the audit or as to going concern and without any other similar qualification.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The affirmative covenants require that the Company achieve a specified level of revenue, as measured quarterly on a rolling twelve-month basis, and commencing with the quarter ending December 31, 2022. The consequences of failing to achieve the performance covenant may be cured if, within sixty days of failing to achieve the performance covenant, the Company issues additional equity securities or subordinated debt with net proceeds sufficient to fund &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;any cash flow deficiency generated from operations, as defined. The 2017 Loan Amendment requires that the Company maintain certain levels of minimum liquidity and maintains an unrestricted cash balance of $2.0 million.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The negative covenants provide, among other things, that without the prior consent of Innovatus subject to certain exceptions, the Company may not dispose of certain assets, engage in certain business combinations or acquisitions, incur additional indebtedness or encumber any of the Company's property, pay dividends on the Company's capital stock or make prohibited investments. The Loan Amendment agreement provides that an event of default will occur if, among other triggers, (i)&#160;the Company defaults in the payment of any amount payable under the agreement when due, (ii)&#160;there occurs any circumstance(s) that could reasonably be expected to result in a material adverse effect on the Company's business, operations or condition, or on the Company's ability to perform its obligations under the agreement, (iii)&#160;the Company becomes insolvent, (iv)&#160;the Company undergoes a change in control or (v)&#160;the Company breaches any negative covenants or certain affirmative covenants in the agreement or, subject to a cure period, otherwise neglects to perform or observe any material item in the agreement.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At December&#160;31, 2021, the Company was in compliance with all covenants of the 2017 Loan Amendment.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Upon an event of default in any of the 2017 Loan Amendment covenants, the repayment of the 2017 Loan Amendment may be accelerated, and the applicable interest rate will be increased by 4.0% until the default is cured. Although repayment of the 2017 Loan Amendment can be accelerated under certain circumstances, the Company believes acceleration of this loan is not probable as of the date of these financial statements. Accordingly, the Company has reflected the amounts of the 2017 Loan Amendment due beyond twelve months of the balance sheet date as non-current.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Future Minimum Payments on the Outstanding Borrowings&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2021, future minimum aggregate payments, including interest, for outstanding borrowings under the Loan Amendment are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:82.233%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.837%"/&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Years Ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;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;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,653&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,686&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2024&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,980&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2025&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;16,152&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2026&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;14,786&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total&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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;37,257&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Less:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Unamortized debt discount and issuance costs&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(208)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Interest&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(9,571)&lt;/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 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total borrowings, net of discounts and debt issuance costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27,478&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt
      contextRef="i78b4e0dd48ec41adac67cf91f4829313_D20170901-20170930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzE5Ng_05846619-60f3-4c7e-a73b-2e865ad12b68"
      unitRef="usd">20000000</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:RepaymentsOfLongTermDebt
      contextRef="ic5e491d1e0c84469a851fc6488ec0b8d_D20170901-20170930"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzIwMA_5b168430-bed6-4367-a107-e944846e8c72"
      unitRef="usd">17800000</us-gaap:RepaymentsOfLongTermDebt>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt
      contextRef="ic374501898604ac3b21a9eb9d1aa4bed_D20181207-20181207"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzM4NA_e60b2d33-9eed-4a40-81d9-652927a388aa"
      unitRef="usd">5000000</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:ProceedsFromIssuanceOfLongTermDebt
      contextRef="i1b932771aa594f01b45eced9775796ed_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzgyNDYzMzcyMTM1NDM_8f7861d2-b9a1-4a8c-9417-9b204efedbaa"
      unitRef="usd">0</us-gaap:ProceedsFromIssuanceOfLongTermDebt>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="ied70bd75f96a43a5baf481fe236d34cf_I20211130"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzY4MQ_92711d15-ad61-40ab-87a8-f4905893e40b"
      unitRef="number">0.080</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <exdx:DebtInstrumentStatedInterestRatePaidInKind
      contextRef="ied70bd75f96a43a5baf481fe236d34cf_I20211130"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzY5NA_a6726971-02cd-42eb-b272-31debe81409c"
      unitRef="number">0.020</exdx:DebtInstrumentStatedInterestRatePaidInKind>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="ied70bd75f96a43a5baf481fe236d34cf_I20211130"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzgzNg_92711d15-ad61-40ab-87a8-f4905893e40b"
      unitRef="number">0.080</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:DebtInstrumentInterestRateEffectivePercentage
      contextRef="ied70bd75f96a43a5baf481fe236d34cf_I20211130"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzkyNw_bdb3614c-62b5-457c-a9fa-a88b6643e513"
      unitRef="number">0.085</us-gaap:DebtInstrumentInterestRateEffectivePercentage>
    <exdx:DebtInstrumentNumberOfMonthlyInstallments
      contextRef="ib2d7ce72995e47d988b87dc3166f65be_D20211101-20211130"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzExMTk_64629382-3c5d-42e0-88c6-a3d2784f520f"
      unitRef="installment">24</exdx:DebtInstrumentNumberOfMonthlyInstallments>
    <us-gaap:DebtInstrumentFeeAmount
      contextRef="i0ccafb2121ef4525b08aab3e4af52bee_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzEyOTY_62c8df92-9463-48dd-9673-c1bd46dbb126"
      unitRef="usd">1000000</us-gaap:DebtInstrumentFeeAmount>
    <exdx:DebtInstrumentPaidInKindLoansIssued
      contextRef="i0e9c8fd61fe64b3a9e2fd6694212ae29_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzE1MDQ_9d546e17-c829-4200-b691-0eb7b879d074"
      unitRef="usd">500000</exdx:DebtInstrumentPaidInKindLoansIssued>
    <exdx:DebtInstrumentPaidInKindLoansIssued
      contextRef="i5613ccef45fa43c68c638c563733b8a5_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzE1MDQ_9d8fe275-bc4b-4f42-b1b9-d80c50dcac71"
      unitRef="usd">500000</exdx:DebtInstrumentPaidInKindLoansIssued>
    <exdx:DebtInstrumentPrepaymentPremiumPercentage
      contextRef="ied70bd75f96a43a5baf481fe236d34cf_I20211130"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzE1Njg_3b8003d9-ba86-4044-8a26-1d6b5a0262ec"
      unitRef="number">0.03</exdx:DebtInstrumentPrepaymentPremiumPercentage>
    <exdx:DebtInstrumentPrepaymentPremiumPercentageAnnualReduction
      contextRef="ied70bd75f96a43a5baf481fe236d34cf_I20211130"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzE2NDc_99bf3609-987b-4e74-9496-b790bebce14f"
      unitRef="number">0.01</exdx:DebtInstrumentPrepaymentPremiumPercentageAnnualReduction>
    <exdx:DebtInstrumentCovenantRevenuePerformancePeriod
      contextRef="i1b932771aa594f01b45eced9775796ed_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzUxNzM_ca6187bd-4054-4eee-baad-2e43aad047af">P12M</exdx:DebtInstrumentCovenantRevenuePerformancePeriod>
    <exdx:DebtInstrumentCovenantNumberOfDaysToCureIfPerformanceMeasureIsNotMet
      contextRef="i1b932771aa594f01b45eced9775796ed_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzI1OTY_58f512f3-160e-41dd-a8e3-387d0fb6225e">P60D</exdx:DebtInstrumentCovenantNumberOfDaysToCureIfPerformanceMeasureIsNotMet>
    <exdx:DebtInstrumentCovenantComplianceMinimumUnrestrictedCashBalance
      contextRef="ied70bd75f96a43a5baf481fe236d34cf_I20211130"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzMyMjk_c7e94b70-9378-44d6-82f6-da5d7da42b59"
      unitRef="usd">2000000.0</exdx:DebtInstrumentCovenantComplianceMinimumUnrestrictedCashBalance>
    <exdx:DebtInstrumentCovenantNonComplianceInterestRateIncreaseDecrease
      contextRef="i0ccafb2121ef4525b08aab3e4af52bee_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzQ1OTg_1566b9f2-9b04-4803-8905-3cca908696fe"
      unitRef="number">0.040</exdx:DebtInstrumentCovenantNonComplianceInterestRateIncreaseDecrease>
    <us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90ZXh0cmVnaW9uOjEzZGJlMmJkZDRlNDQ5Y2Q4NWZiYjY0MTg2NTlkZDExXzUxNzU_ad085206-8061-4038-beb8-3a1b8b76a65d">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2021, future minimum aggregate payments, including interest, for outstanding borrowings under the Loan Amendment are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:82.233%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:14.837%"/&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Years Ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;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;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,653&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,686&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2024&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,980&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2025&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;16,152&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2026&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;14,786&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total&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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;37,257&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Less:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Unamortized debt discount and issuance costs&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(208)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 37pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Interest&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(9,571)&lt;/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 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total borrowings, net of discounts and debt issuance costs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27,478&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfMaturitiesOfLongTermDebtTableTextBlock>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90YWJsZTo3ZDViODMyNWI1MGY0MWFjYmM1MDU4YTczYmE4MTZhNS90YWJsZXJhbmdlOjdkNWI4MzI1YjUwZjQxYWNiYzUwNThhNzNiYTgxNmE1XzMtMi0xLTEtMjEzNTM_6e0a2b96-1913-4a58-bb95-22216779513c"
      unitRef="usd">1653000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInNextTwelveMonths>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90YWJsZTo3ZDViODMyNWI1MGY0MWFjYmM1MDU4YTczYmE4MTZhNS90YWJsZXJhbmdlOjdkNWI4MzI1YjUwZjQxYWNiYzUwNThhNzNiYTgxNmE1XzQtMi0xLTEtMjEzNTM_c5cb1880-effa-4540-9e4a-6090c5d83aff"
      unitRef="usd">1686000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearTwo>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90YWJsZTo3ZDViODMyNWI1MGY0MWFjYmM1MDU4YTczYmE4MTZhNS90YWJsZXJhbmdlOjdkNWI4MzI1YjUwZjQxYWNiYzUwNThhNzNiYTgxNmE1XzUtMi0xLTEtMjEzNTM_d81dee6c-237b-41cb-abae-15a9418ede1b"
      unitRef="usd">2980000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearThree>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90YWJsZTo3ZDViODMyNWI1MGY0MWFjYmM1MDU4YTczYmE4MTZhNS90YWJsZXJhbmdlOjdkNWI4MzI1YjUwZjQxYWNiYzUwNThhNzNiYTgxNmE1XzYtMi0xLTEtMjEzNTM_7c2a7241-55de-4a62-a0b2-075dc4500960"
      unitRef="usd">16152000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFour>
    <us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90YWJsZTo3ZDViODMyNWI1MGY0MWFjYmM1MDU4YTczYmE4MTZhNS90YWJsZXJhbmdlOjdkNWI4MzI1YjUwZjQxYWNiYzUwNThhNzNiYTgxNmE1XzctMi0xLTEtMjM3NDk_4b3ba4ac-1a6e-43f7-8560-69856daf6363"
      unitRef="usd">14786000</us-gaap:LongTermDebtMaturitiesRepaymentsOfPrincipalInYearFive>
    <exdx:LongTermDebtIncludingUndiscountedInterest
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90YWJsZTo3ZDViODMyNWI1MGY0MWFjYmM1MDU4YTczYmE4MTZhNS90YWJsZXJhbmdlOjdkNWI4MzI1YjUwZjQxYWNiYzUwNThhNzNiYTgxNmE1XzctMi0xLTEtMjEzNTM_654bd3aa-c340-4e76-9595-9b9135bed485"
      unitRef="usd">37257000</exdx:LongTermDebtIncludingUndiscountedInterest>
    <us-gaap:DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90YWJsZTo3ZDViODMyNWI1MGY0MWFjYmM1MDU4YTczYmE4MTZhNS90YWJsZXJhbmdlOjdkNWI4MzI1YjUwZjQxYWNiYzUwNThhNzNiYTgxNmE1XzktMi0xLTEtMjEzNTM_a3d9bb89-5683-4901-a965-9599ecf9042b"
      unitRef="usd">208000</us-gaap:DebtInstrumentUnamortizedDiscountPremiumAndDebtIssuanceCostsNet>
    <exdx:LongTermDebtUndiscountedInterestAmount
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90YWJsZTo3ZDViODMyNWI1MGY0MWFjYmM1MDU4YTczYmE4MTZhNS90YWJsZXJhbmdlOjdkNWI4MzI1YjUwZjQxYWNiYzUwNThhNzNiYTgxNmE1XzEwLTItMS0xLTIxMzUz_8ea996ee-3bfa-4281-a0c5-9288c6d95bb0"
      unitRef="usd">9571000</exdx:LongTermDebtUndiscountedInterestAmount>
    <us-gaap:LongTermDebt
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMjcvZnJhZzoxM2RiZTJiZGQ0ZTQ0OWNkODVmYmI2NDE4NjU5ZGQxMS90YWJsZTo3ZDViODMyNWI1MGY0MWFjYmM1MDU4YTczYmE4MTZhNS90YWJsZXJhbmdlOjdkNWI4MzI1YjUwZjQxYWNiYzUwNThhNzNiYTgxNmE1XzExLTItMS0xLTIxMzUz_8c4cc1bc-a25c-4b6b-8060-da2fec4aa0c7"
      unitRef="usd">27478000</us-gaap:LongTermDebt>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzM1OTg_a3ab0f93-2a08-4a07-b47e-4b1df70ab7e1">Commitments and Contingencies&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December 31, 2021, the Company leases office and laboratory space in Vista, California, under leases that expire in April 2027, with an option to extend a portion of the lease for an additional 5-year period. The Company also leases additional office space in Vista, California, under a lease that expires in April 2027 with an option to extend the lease for an additional 5-year period. The Company's lease payments under each of these leases are subject to escalation clauses. In addition, effective on August 23, 2021, the Company entered into a sub-lease agreement for an additional office space in Carlsbad, California. The sub-lease commended in October 2021 and expires in April 2027.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Minimum annual lease payments under non-cancelable lease arrangements at December&#160;31, 2021 are as follows (in thousands):&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:55.332%"/&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.783%"/&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.785%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Years Ending December 31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Capital Leases&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td 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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;641&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,337&#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="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;566&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,445&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2024&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;313&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,489&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2025&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;66&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,533&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2026&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,584&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Thereafter&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total minimum lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td 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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,586&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;7,927&#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="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Less: amount representing interest&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(116)&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="3" style="background-color:#ffffff;border-top:3pt double #000;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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Present value of future minimum 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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,470&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Less: current portion&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(587)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Long-term capital lease obligations&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;883&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:15pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;For the years ended December&#160;31, 2021 and 2020, rent expense was $0.9 million and $0.6 million, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Acquisition-related liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the acquisition of the medical diagnostics division of Cypress Bioscience, Inc. in 2010, the Company was required to pay certain amounts in the event that certain revenue milestones were achieved and upon the first commercial sale of a product associated with this acquisition. The acquisition also included amounts that may be due under several licensing agreements. One such license agreement, the license agreement, dated September 13, 2007, between the Company and Prometheus Laboratories, Inc. (the Prometheus License), was terminated by mutual agreement on September 28, 2021. In consideration for terminating the Prometheus License, including with respect to the remaining potential milestone payments thereunder, the Company agreed to pay Prometheus Laboratories, Inc. a fee of approximately $0.1 million and acquired the intellectual property previously licensed to the Company pursuant to the Prometheus Agreement.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has ongoing royalty payment obligations of 2.5% on net sales of products which incorporate certain acquired technologies. Future royalties payable under these arrangements are limited to the lesser of (i) an aggregate of $1.2 million (including an upfront payment of $100,000) and (ii) the total royalties earned through January 1, 2024.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Licensing Agreements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has licensed technology for use in its diagnostic tests. In addition to the milestone payments required by these agreements as described above, individual license agreements generally provide for ongoing royalty payments ranging from 1.5% to 7.0% on net sales of products which incorporate licensed technology, as defined in such agreements. Royalties are accrued when earned and recorded in costs of revenue in the accompanying statement of operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In May 2021, the Company entered into an exclusive license agreement with Allegheny Health Network Research Institute, or AHN, to obtain an exclusive license to AHN's patent rights in certain inventions, pursuant to which the Company paid AHN an initial license fee of $0.4 million. In addition, under the terms of the exclusive license agreement, the Company is required to pay the greater of royalties in the low single digits on net sales of diagnostic tests using the assigned patents or a flat annual minimum royalty amount, pending approvals and commercialization.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2021, the Company entered into an exclusive license agreement with Queen Mary University of London, or QMUL, to obtain an exclusive license to QMUL's patent rights in certain inventions, pursuant to which the Company is required to pay QMUL an initial license fee of $0.4 million. The Company is obligated to make a one-time payment of $0.1 million relating to the first commercial sale of the licensed products. In addition, after the first 18 months of commercial sales under the terms of the exclusive license agreement, the Company is required to &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;pay royalties in the high single-digits on net sales of testing products using the assigned patents, pending approvals and commercialization.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Supply Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2021, the Company entered into an amended supply agreement with one supplier for reagents which includes minimum annual purchase commitments of $3.7 million and $6.0 million for the years ended December 31, 2021 and 2022, respectively, with a 15% annual increase thereafter for unconditional minimum purchase commitments through the year ended December 31, 2025.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Collaboration Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In May 2021, the Company entered into a master research collaboration agreement with AHN, pursuant to which the Company is required to pay AHN a collaboration fee of $0.4 million for each year during the initial term of the agreement. Collaboration expenses under the master research collaboration agreement were $0.3 million for the year ended December&#160;31, 2021. Collaboration expenses under the AHN collaboration are included in research and development expenses.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Contingencies&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In the normal course of business, the Company enters into contracts and agreements that contain a variety of representations and warranties and provide for general indemnifications; including subpoenas and other civil investigative demands, from governmental agencies, Medicare or Medicaid payors and managed care organizations reviewing billing practices or requesting comment on allegations of billing irregularities that are brought to their attention through billing audits or third parties. The Company's exposure under these agreements is unknown because it involves claims that may be made against the Company in the future, but have not yet been made or that the Company believes to be immaterial. The Company accrues a liability for such matters when it is probable that future expenditures will be made and such expenditures can be reasonably estimated.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Litigation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;From time to time, the Company may be subject to various legal proceedings that arise in the ordinary course of business activities.&lt;/span&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <exdx:OperatingLeasesRenewalTerm
      contextRef="i0d1202d21f8740ee98fa61d24c81483e_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzM1OTM_8a4c0fdb-cbc7-4711-aeef-a229b8eda222">P5Y</exdx:OperatingLeasesRenewalTerm>
    <exdx:OperatingLeasesRenewalTerm
      contextRef="iafeeb227b76e4b249f9a3f38443686d8_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzM1OTQ_d221577e-d878-4194-94b2-383d98ec7df5">P5Y</exdx:OperatingLeasesRenewalTerm>
    <us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzM1OTY_a80d8d02-0c9b-41a3-9072-c33c352aea46">&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Minimum annual lease payments under non-cancelable lease arrangements at December&#160;31, 2021 are as follows (in thousands):&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:55.332%"/&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.783%"/&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.785%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Years Ending December 31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Capital Leases&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td 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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;641&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,337&#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="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;566&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,445&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2024&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;313&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,489&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2025&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;66&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,533&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2026&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,584&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Thereafter&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total minimum lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td 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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,586&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;7,927&#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="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Less: amount representing interest&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(116)&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="3" style="background-color:#ffffff;border-top:3pt double #000;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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Present value of future minimum 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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,470&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Less: current portion&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(587)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Long-term capital lease obligations&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;883&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfFutureMinimumRentalPaymentsForOperatingLeasesTableTextBlock>
    <us-gaap:ScheduleOfFutureMinimumLeasePaymentsForCapitalLeasesTableTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzM1OTc_b66ffafc-5f43-4c7b-b0e7-f7c5910d8e0b">&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Minimum annual lease payments under non-cancelable lease arrangements at December&#160;31, 2021 are as follows (in thousands):&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:55.332%"/&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.783%"/&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.785%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Years Ending December 31,&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Capital Leases&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Operating Leases&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td 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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;641&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,337&#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="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2023&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;566&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,445&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2024&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;313&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,489&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2025&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;66&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,533&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2026&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,584&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Thereafter&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total minimum lease payments&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td 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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,586&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;7,927&#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="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Less: amount representing interest&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(116)&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="3" style="background-color:#ffffff;border-top:3pt double #000;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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Present value of future minimum 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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,470&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Less: current portion&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(587)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 7pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Long-term capital lease obligations&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;883&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfFutureMinimumLeasePaymentsForCapitalLeasesTableTextBlock>
    <us-gaap:CapitalLeasesFutureMinimumPaymentsDueCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzEtMi0xLTEtMjEzNTM_e2d0c009-1d6e-4551-baea-04cbbb9e7967"
      unitRef="usd">641000</us-gaap:CapitalLeasesFutureMinimumPaymentsDueCurrent>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzEtNC0xLTEtMjEzNTM_cd97cc37-6412-473b-be2e-bb3a86e78d35"
      unitRef="usd">1337000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent>
    <us-gaap:CapitalLeasesFutureMinimumPaymentsDueInTwoYears
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzItMi0xLTEtMjEzNTM_1fc736f2-61c7-4aa1-bba4-95550aa24e10"
      unitRef="usd">566000</us-gaap:CapitalLeasesFutureMinimumPaymentsDueInTwoYears>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzItNC0xLTEtMjEzNTM_9ed46000-495d-4645-9c9e-feb2b2d6382a"
      unitRef="usd">1445000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears>
    <us-gaap:CapitalLeasesFutureMinimumPaymentsDueInThreeYears
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzMtMi0xLTEtMjEzNTM_f22f4095-31a1-4c2c-ab7b-8b928f7e8858"
      unitRef="usd">313000</us-gaap:CapitalLeasesFutureMinimumPaymentsDueInThreeYears>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInThreeYears
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzMtNC0xLTEtMjEzNTM_0a33ad8b-cc0c-49c4-b771-699d070cbe8e"
      unitRef="usd">1489000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInThreeYears>
    <us-gaap:CapitalLeasesFutureMinimumPaymentsDueInFourYears
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzQtMi0xLTEtMjEzNTM_345b19b9-bb7a-4a2c-9311-7b7c5ea0db4a"
      unitRef="usd">66000</us-gaap:CapitalLeasesFutureMinimumPaymentsDueInFourYears>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFourYears
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzQtNC0xLTEtMjEzNTM_e07e4802-440d-4d97-808a-405adedc4149"
      unitRef="usd">1533000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFourYears>
    <us-gaap:CapitalLeasesFutureMinimumPaymentsDueInFiveYears
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzUtMi0xLTEtMjEzNTM_2e806e5f-5148-4c92-992b-a88612c24406"
      unitRef="usd">0</us-gaap:CapitalLeasesFutureMinimumPaymentsDueInFiveYears>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFiveYears
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzUtNC0xLTEtMjEzNTM_682f227f-4450-40a9-ba22-f939d6a1219c"
      unitRef="usd">1584000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInFiveYears>
    <us-gaap:CapitalLeasesFutureMinimumPaymentsDueThereafter
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzYtMi0xLTEtMjEzNTM_19ccaf6f-af79-452e-8388-51942deef0b8"
      unitRef="usd">0</us-gaap:CapitalLeasesFutureMinimumPaymentsDueThereafter>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDueThereafter
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzYtNC0xLTEtMjEzNTM_49194151-7fb4-44bb-bafb-043a04366308"
      unitRef="usd">539000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueThereafter>
    <us-gaap:CapitalLeasesFutureMinimumPaymentsDue
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzctMi0xLTEtMjEzNTM_04024c1d-a5b6-43db-99d4-eeffb670ff69"
      unitRef="usd">1586000</us-gaap:CapitalLeasesFutureMinimumPaymentsDue>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDue
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzctNC0xLTEtMjEzNTM_b976b59b-f438-431d-8c8c-0c613665c5cf"
      unitRef="usd">7927000</us-gaap:OperatingLeasesFutureMinimumPaymentsDue>
    <us-gaap:CapitalLeasesFutureMinimumPaymentsInterestIncludedInPayments
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzgtMi0xLTEtMjEzNTM_4c2fa820-8b97-4168-8832-2a97ef1ddbb2"
      unitRef="usd">116000</us-gaap:CapitalLeasesFutureMinimumPaymentsInterestIncludedInPayments>
    <us-gaap:CapitalLeasesFutureMinimumPaymentsPresentValueOfNetMinimumPayments
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzktMi0xLTEtMjEzNTM_aa7a27de-1d85-4d17-83da-ddb833be676b"
      unitRef="usd">1470000</us-gaap:CapitalLeasesFutureMinimumPaymentsPresentValueOfNetMinimumPayments>
    <us-gaap:CapitalLeaseObligationsCurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzEwLTItMS0xLTIxMzUz_00e1b6d8-c182-475f-afdc-99658101f049"
      unitRef="usd">587000</us-gaap:CapitalLeaseObligationsCurrent>
    <us-gaap:CapitalLeaseObligationsNoncurrent
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90YWJsZTpjMWYzOTIxYTk4ZTE0ODI4ODMzYjg1ODkzMzZmMjk4Yi90YWJsZXJhbmdlOmMxZjM5MjFhOThlMTQ4Mjg4MzNiODU4OTMzNmYyOThiXzExLTItMS0xLTIxMzUz_bd6482f1-9994-46f0-b320-4e329d05215c"
      unitRef="usd">883000</us-gaap:CapitalLeaseObligationsNoncurrent>
    <us-gaap:LeaseAndRentalExpense
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzY5OQ_1e4b8f94-4fac-479a-ad40-6e8b883de3b3"
      unitRef="usd">900000</us-gaap:LeaseAndRentalExpense>
    <us-gaap:LeaseAndRentalExpense
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzcxNA_18de147f-fdb6-43c3-9ed7-e807c4b82ba3"
      unitRef="usd">600000</us-gaap:LeaseAndRentalExpense>
    <us-gaap:PaymentsToAcquireProductiveAssets
      contextRef="i366a155531cb4fbea6c2f6533d2d2ca9_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzEwOTk1MTE2MzIzODk_4f151667-62da-4861-b658-48ec7aadd9aa"
      unitRef="usd">100000</us-gaap:PaymentsToAcquireProductiveAssets>
    <exdx:RoyaltyObligationPercentageOfSales
      contextRef="ibc597536bb884ea9936d1a1244d27e61_I20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzEwOTk1MTE2MzI1NDM_2cbf4c95-1595-4fb3-9b61-b88793e3675b"
      unitRef="number">0.025</exdx:RoyaltyObligationPercentageOfSales>
    <us-gaap:RoyaltyGuaranteesCommitmentsAmount
      contextRef="i05b6fb9c29d74217afc5f3390a9b3139_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzE2NTk_0a0e3663-261a-4f5a-9654-8bc41815e2ed"
      unitRef="usd">1200000</us-gaap:RoyaltyGuaranteesCommitmentsAmount>
    <exdx:AdvancePayment
      contextRef="i05b6fb9c29d74217afc5f3390a9b3139_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzE3MDM_bc3430ce-47a7-406b-b8e8-8483d1cc1eea"
      unitRef="usd">100000</exdx:AdvancePayment>
    <exdx:RoyaltyObligationPercentageOfSales
      contextRef="ie1b25960c2884eb7901b36fc403c5bcf_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzEwOTk1MTE2MzI1Nzg_68bbe091-af10-43c7-a348-92441216d9d3"
      unitRef="number">0.015</exdx:RoyaltyObligationPercentageOfSales>
    <exdx:RoyaltyObligationPercentageOfSales
      contextRef="i64b7d048a599429db92aa5f65e5ba72a_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzEwOTk1MTE2MzI1ODg_f60591ab-0bcd-4aca-8565-fb2644bc0795"
      unitRef="number">0.070</exdx:RoyaltyObligationPercentageOfSales>
    <exdx:LicenseAgreementInitialLicenseFee
      contextRef="i6deaabe305214817bd74cf6cd4c0b35d_D20210501-20210531"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzEwOTk1MTE2MzI5Mjk_a47f6f25-bd53-40c8-8117-0e38583601d0"
      unitRef="usd">400000</exdx:LicenseAgreementInitialLicenseFee>
    <exdx:LicenseAgreementInitialLicenseFee
      contextRef="i912faed70c5a4fd581a9703d24a89331_D20211101-20211130"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzEwOTk1MTE2MzQyNjA_1dad3834-3deb-4bb4-b958-1b92c593f90d"
      unitRef="usd">400000</exdx:LicenseAgreementInitialLicenseFee>
    <exdx:LicenseAgreementOneTimePayment
      contextRef="i912faed70c5a4fd581a9703d24a89331_D20211101-20211130"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzEwOTk1MTE2MzQzMzA_34c59ad1-ae6f-42bd-b84a-60ac1307e0c4"
      unitRef="usd">100000</exdx:LicenseAgreementOneTimePayment>
    <exdx:LicenseAgreementPeriodAfterCommercialSalesBeginForRoyaltiesToBePaid
      contextRef="ia5e9cfbf31b3443e8621d3fdf0dca027_D20211101-20211130"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzQzOTgwNDY1MTgzMDc_679a5612-f489-4d83-a242-84dc1b911db2">P18M</exdx:LicenseAgreementPeriodAfterCommercialSalesBeginForRoyaltiesToBePaid>
    <us-gaap:PurchaseObligationDueInNextTwelveMonths
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzI0MDE_82bcc279-2014-4d16-b939-e2962b0c2f69"
      unitRef="usd">3700000</us-gaap:PurchaseObligationDueInNextTwelveMonths>
    <us-gaap:PurchaseObligationDueInSecondYear
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzI0MTY_1b4296d3-5c03-454a-8f78-2823ac49334c"
      unitRef="usd">6000000.0</us-gaap:PurchaseObligationDueInSecondYear>
    <exdx:PurchaseObligationAnnualIncreaseInCommitmentPercentage
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzEwOTk1MTE2MzMyNjk_4efc8e93-007c-4785-a9f2-02223ddaa9d3"
      unitRef="number">0.15</exdx:PurchaseObligationAnnualIncreaseInCommitmentPercentage>
    <exdx:CollaborationAgreementAnnualCollaborationFee
      contextRef="iaf6dd19b55ad47bc93d42a9942cfa94b_D20210501-20210531"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzEwOTk1MTE2MzM1OTg_900991e0-1ed2-4113-8443-b6d085578605"
      unitRef="usd">400000</exdx:CollaborationAgreementAnnualCollaborationFee>
    <exdx:CollaborationAgreementCollaborationExpenses
      contextRef="if0b797c2a4eb440ab15ab3cf34b4f976_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzAvZnJhZzpjNWMzMjI1YmI5Yjc0OGZjODQ2NWJjODY5OTVkNTI0Yy90ZXh0cmVnaW9uOmM1YzMyMjViYjliNzQ4ZmM4NDY1YmM4Njk5NWQ1MjRjXzEwOTk1MTE2MzM3NTY_3115952f-d524-4a9e-99b0-c1b16b9ed66f"
      unitRef="usd">300000</exdx:CollaborationAgreementCollaborationExpenses>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzMvZnJhZzo0ZDI0NGY3MjRmYWU0NTU5YjhlZDc2YTFlNmRiZTcwMi90ZXh0cmVnaW9uOjRkMjQ0ZjcyNGZhZTQ1NTliOGVkNzZhMWU2ZGJlNzAyXzMwMA_d24ee843-92be-4f66-83fe-eeb9d77ac857">Fair Value Measurements&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth the Company's financial instruments that were measured at fair value on a recurring basis within the fair value hierarchy (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:53.870%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.426%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.426%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.426%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.432%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Total&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Level&#160;1&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Level&#160;2&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Level&#160;3&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;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="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="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;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Money market funds, included in cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;95,761&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;95,761&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-indent:24.75pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:53.285%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.572%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.572%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.572%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Total&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Level&#160;1&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Level&#160;2&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Level&#160;3&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Money market funds, included in cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;34,507&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;34,507&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of the Company's money market funds is based on quoted market prices.&lt;/span&gt;&lt;/div&gt;</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzMvZnJhZzo0ZDI0NGY3MjRmYWU0NTU5YjhlZDc2YTFlNmRiZTcwMi90ZXh0cmVnaW9uOjRkMjQ0ZjcyNGZhZTQ1NTliOGVkNzZhMWU2ZGJlNzAyXzMwMQ_509d0a39-a55c-4cc8-947f-d7485b654db2">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth the Company's financial instruments that were measured at fair value on a recurring basis within the fair value hierarchy (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:53.870%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.426%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.426%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.426%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.432%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Total&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Level&#160;1&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Level&#160;2&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Level&#160;3&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;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="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="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;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Money market funds, included in cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;95,761&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;95,761&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-indent:24.75pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:53.285%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.572%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.572%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.572%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:9.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;December 31, 2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Total&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Level&#160;1&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Level&#160;2&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Level&#160;3&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Money market funds, included in cash and cash equivalents&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;34,507&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;34,507&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ie894c9ee2efa4fccb2bbf8bf12db40c7_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzMvZnJhZzo0ZDI0NGY3MjRmYWU0NTU5YjhlZDc2YTFlNmRiZTcwMi90YWJsZTphOTQ0MmUyYmYwZDI0NzUxYWY5NWM0OGMxNWU1NWIwZC90YWJsZXJhbmdlOmE5NDQyZTJiZjBkMjQ3NTFhZjk1YzQ4YzE1ZTU1YjBkXzMtMi0xLTEtMjEzNTM_5fe02e64-0d42-4145-8952-3bff9a122fbe"
      unitRef="usd">95761000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ie4a3176e43194a079cc377cf1a233236_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzMvZnJhZzo0ZDI0NGY3MjRmYWU0NTU5YjhlZDc2YTFlNmRiZTcwMi90YWJsZTphOTQ0MmUyYmYwZDI0NzUxYWY5NWM0OGMxNWU1NWIwZC90YWJsZXJhbmdlOmE5NDQyZTJiZjBkMjQ3NTFhZjk1YzQ4YzE1ZTU1YjBkXzMtNC0xLTEtMjEzNTM_1c0d7952-ff97-46b1-8917-4f794f551ffc"
      unitRef="usd">95761000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="if0a71a58aad54b9fb066ade3ade39a99_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzMvZnJhZzo0ZDI0NGY3MjRmYWU0NTU5YjhlZDc2YTFlNmRiZTcwMi90YWJsZTphOTQ0MmUyYmYwZDI0NzUxYWY5NWM0OGMxNWU1NWIwZC90YWJsZXJhbmdlOmE5NDQyZTJiZjBkMjQ3NTFhZjk1YzQ4YzE1ZTU1YjBkXzMtNi0xLTEtMjEzNTM_bdbd56b0-f910-4bb3-89c9-2af4a2068e60"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i50936103a58446d7aca2769c3a4b770d_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzMvZnJhZzo0ZDI0NGY3MjRmYWU0NTU5YjhlZDc2YTFlNmRiZTcwMi90YWJsZTphOTQ0MmUyYmYwZDI0NzUxYWY5NWM0OGMxNWU1NWIwZC90YWJsZXJhbmdlOmE5NDQyZTJiZjBkMjQ3NTFhZjk1YzQ4YzE1ZTU1YjBkXzMtOC0xLTEtMjEzNTM_12768c74-5e35-4677-a5a4-b987ee3d7f13"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i86ec71f3ddf34c5c9d905f8cbfddcbd0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzMvZnJhZzo0ZDI0NGY3MjRmYWU0NTU5YjhlZDc2YTFlNmRiZTcwMi90YWJsZTpjYTA2ZWUzNjVmYzk0ZTQ1OWU1NzFjMzA0YjQyNzRmZi90YWJsZXJhbmdlOmNhMDZlZTM2NWZjOTRlNDU5ZTU3MWMzMDRiNDI3NGZmXzMtMi0xLTEtMjEzNTM_f039ea7a-883c-475f-968a-9730d1ea91a6"
      unitRef="usd">34507000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i61ced3118ccb48baa10e17dbefe16c12_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzMvZnJhZzo0ZDI0NGY3MjRmYWU0NTU5YjhlZDc2YTFlNmRiZTcwMi90YWJsZTpjYTA2ZWUzNjVmYzk0ZTQ1OWU1NzFjMzA0YjQyNzRmZi90YWJsZXJhbmdlOmNhMDZlZTM2NWZjOTRlNDU5ZTU3MWMzMDRiNDI3NGZmXzMtNC0xLTEtMjEzNTM_55ffcc96-c577-4cf8-8318-74dd66cf09be"
      unitRef="usd">34507000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i7cdf3133b3fd471789d770d99cf689a5_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzMvZnJhZzo0ZDI0NGY3MjRmYWU0NTU5YjhlZDc2YTFlNmRiZTcwMi90YWJsZTpjYTA2ZWUzNjVmYzk0ZTQ1OWU1NzFjMzA0YjQyNzRmZi90YWJsZXJhbmdlOmNhMDZlZTM2NWZjOTRlNDU5ZTU3MWMzMDRiNDI3NGZmXzMtNi0xLTEtMjEzNTM_6ffecdc7-aec5-4c7d-880e-a9fba3a98cca"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="id0f9ae26184942f895fb239cc86b0f37_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzMvZnJhZzo0ZDI0NGY3MjRmYWU0NTU5YjhlZDc2YTFlNmRiZTcwMi90YWJsZTpjYTA2ZWUzNjVmYzk0ZTQ1OWU1NzFjMzA0YjQyNzRmZi90YWJsZXJhbmdlOmNhMDZlZTM2NWZjOTRlNDU5ZTU3MWMzMDRiNDI3NGZmXzMtOC0xLTEtMjEzNTM_979ab5e0-9974-4277-8180-0f6f75ca8aa2"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90ZXh0cmVnaW9uOjE4NzY1ZTcxOWMzMDQxZDE5ZDkyMGJkNTFkYmU5M2MzXzE3OTc_a7cbdbb0-f601-495d-a581-a3a47db0367a">Stockholders' EquityCommon Stock&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On November 10, 2020, the Company filed a registration statement on Form S-3 (the Shelf Registration Statement), covering the offering, from time to time, of up to $150.0 million of common stock, preferred stock, debt securities, warrants and units, which Shelf Registration Statement became effective on November 19, 2020. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On March 25, 2021, the Company completed a public offering of 4,255,000 shares of its common stock at a public offering price of $16.25 per share. Net proceeds from the offering were approximately $64.7 million, after deducting underwriting discounts, commissions and other offering expenses of $4.4 million. The shares were registered pursuant to the Company's Shelf Registration Statement discussed above. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Exchange Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On June 22, 2021, the Company entered into an exchange agreement (the Exchange Agreement) with an Investor and its affiliates (the Exchanging Stockholders), pursuant to which the Company exchanged an aggregate of 804,951 shares of the Company's common stock owned by the Exchanging Stockholders for pre-funded warrants (the Exchange Warrants) to purchase an aggregate of 804,951 shares of common stock (subject to adjustment in the event of any stock dividends and splits, reverse stock split, recapitalization, reorganization or similar transaction, as described in the Exchange Warrants), with an exercise price of $0.001 per share. The Exchange Warrants do not expire and are exercisable at any time except that the Exchange Warrants cannot be exercised by the Exchanging Stockholders if, after giving effect thereto, the Exchanging Stockholders would beneficially own more than 4.99% of the Company's common stock, which percentage may change at the Exchanging Stockholder's election to any other percentage upon 61 days' notice to the Company. The Company recorded the retirement of common stock exchanged as a reduction of common shares outstanding and additional paid-in-capital at the fair value of the Exchange Warrants on the issuance date. The Exchange Warrants are classified as equity and the fair value of the Exchange Warrants was recorded as an increase to additional paid-in-capital and is not subject to remeasurement. The Company determined that the fair value of the Exchange Warrants is substantially similar to the fair value of the retired shares on the issuance date due to the negligible exercise price for the Exchange Warrants. As of December&#160;31, 2021, none of the Exchange Warrants have been exercised. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Outstanding Warrants&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following equity classified warrants to purchase common stock were outstanding as of December&#160;31, 2021:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:28.432%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.519%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Exercise Price&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Issuance date&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Expiration date&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock warrants&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;237,169&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;January 19, 2016&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;January 19, 2026&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock warrants&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;67,086&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1.84&#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="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;March 31, 2016&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;March 31, 2026&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock warrants&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;131&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;April 1, 2016&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;April 1, 2026&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock warrants&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;83,778&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;14.32&#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="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;September 7, 2017&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;September 7, 2024&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock warrants&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;20,944&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;14.32&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;December 7, 2018&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;December 7, 2025&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock warrants (Exchange Warrants)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;804,951&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.001&#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="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;June 22, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,214,059&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During the year ended December&#160;31, 2021, warrants to purchase common stock were exercised resulting in the issuance of 17,719 shares of the Company's common stock and cash proceeds of an immaterial amount.&lt;/span&gt;&lt;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <exdx:SaleOfStockNumberOfSharesAuthorizedToBeIssuedInOffering
      contextRef="i1f80b058c94a442cb50e7f29af389136_D20201110-20201110"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90ZXh0cmVnaW9uOjE4NzY1ZTcxOWMzMDQxZDE5ZDkyMGJkNTFkYmU5M2MzXzEwOTk1MTE2MzAzMDE_6fbc2dc0-6f63-4993-b02e-08ce293d43f4"
      unitRef="shares">150000000.0</exdx:SaleOfStockNumberOfSharesAuthorizedToBeIssuedInOffering>
    <us-gaap:SaleOfStockNumberOfSharesIssuedInTransaction
      contextRef="i4737652479c54daf8b2935ae5d4abf07_D20210325-20210325"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90ZXh0cmVnaW9uOjE4NzY1ZTcxOWMzMDQxZDE5ZDkyMGJkNTFkYmU5M2MzXzEwOTk1MTE2MzA1MjM_53d02f90-9c00-4293-90b0-e4ff56104a59"
      unitRef="shares">4255000</us-gaap:SaleOfStockNumberOfSharesIssuedInTransaction>
    <us-gaap:SaleOfStockPricePerShare
      contextRef="i818303aea365411da84f8d036d673178_I20210325"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90ZXh0cmVnaW9uOjE4NzY1ZTcxOWMzMDQxZDE5ZDkyMGJkNTFkYmU5M2MzXzEwOTk1MTE2MzA1ODg_2ce8d94d-3d81-48e5-8278-d74566b820ea"
      unitRef="usdPerShare">16.25</us-gaap:SaleOfStockPricePerShare>
    <us-gaap:SaleOfStockConsiderationReceivedOnTransaction
      contextRef="i4737652479c54daf8b2935ae5d4abf07_D20210325-20210325"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90ZXh0cmVnaW9uOjE4NzY1ZTcxOWMzMDQxZDE5ZDkyMGJkNTFkYmU5M2MzXzEwOTk1MTE2MzA5MzU_8d0bcaba-9498-40e8-a336-f098028d81cf"
      unitRef="usd">64700000</us-gaap:SaleOfStockConsiderationReceivedOnTransaction>
    <exdx:StockIssuanceCosts
      contextRef="i818303aea365411da84f8d036d673178_I20210325"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90ZXh0cmVnaW9uOjE4NzY1ZTcxOWMzMDQxZDE5ZDkyMGJkNTFkYmU5M2MzXzEwOTk1MTE2MzEwMDA_d144c4b1-d973-457d-8c7f-ac50243ec982"
      unitRef="usd">4400000</exdx:StockIssuanceCosts>
    <exdx:ExchangeAgreementNumberOfSharesExchangedForWarrants
      contextRef="i2c183273fad14e45a7c6d64d951ffc7e_D20210622-20210622"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90ZXh0cmVnaW9uOjE4NzY1ZTcxOWMzMDQxZDE5ZDkyMGJkNTFkYmU5M2MzXzEwOTk1MTE2MzE3ODM_39c95fa0-b6d5-42e3-9c22-d07262072a3b"
      unitRef="shares">804951</exdx:ExchangeAgreementNumberOfSharesExchangedForWarrants>
    <exdx:ExchangeAgreementNumberOfSharesExchangedForWarrants
      contextRef="i2c183273fad14e45a7c6d64d951ffc7e_D20210622-20210622"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90ZXh0cmVnaW9uOjE4NzY1ZTcxOWMzMDQxZDE5ZDkyMGJkNTFkYmU5M2MzXzEwOTk1MTE2MzE5Mzk_39c95fa0-b6d5-42e3-9c22-d07262072a3b"
      unitRef="shares">804951</exdx:ExchangeAgreementNumberOfSharesExchangedForWarrants>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="if67fb3139548459d95830c344b373e11_I20210622"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90ZXh0cmVnaW9uOjE4NzY1ZTcxOWMzMDQxZDE5ZDkyMGJkNTFkYmU5M2MzXzEwOTk1MTE2MzIxODE_a5ef6a9e-ad5f-4f74-905e-06fdae683329"
      unitRef="usdPerShare">0.001</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <us-gaap:SaleOfStockPercentageOfOwnershipAfterTransaction
      contextRef="i2c183273fad14e45a7c6d64d951ffc7e_D20210622-20210622"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90ZXh0cmVnaW9uOjE4NzY1ZTcxOWMzMDQxZDE5ZDkyMGJkNTFkYmU5M2MzXzEwOTk1MTE2MzI0NDk_89840bd9-36b0-4189-86b3-e7a2d4bb07bb"
      unitRef="number">0.0499</us-gaap:SaleOfStockPercentageOfOwnershipAfterTransaction>
    <exdx:ClassOfWarrantOrRightNumberOfWarrantsExercised
      contextRef="i113fe52cf58445c9abd2ed69758419c8_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90ZXh0cmVnaW9uOjE4NzY1ZTcxOWMzMDQxZDE5ZDkyMGJkNTFkYmU5M2MzXzQ5NDc4MDIzMzA1Mzk_6e0baffb-89cc-49da-82fb-9272c5e8cecb"
      unitRef="shares">0</exdx:ClassOfWarrantOrRightNumberOfWarrantsExercised>
    <us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90ZXh0cmVnaW9uOjE4NzY1ZTcxOWMzMDQxZDE5ZDkyMGJkNTFkYmU5M2MzXzE3OTk_f161c435-9471-4d6b-8a6d-1a726837e378">&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following equity classified warrants to purchase common stock were outstanding as of December&#160;31, 2021:&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:28.432%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.519%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.783%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:18.788%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Shares&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Exercise Price&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Issuance date&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Expiration date&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock warrants&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;237,169&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;January 19, 2016&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;January 19, 2026&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock warrants&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;67,086&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1.84&#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="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;March 31, 2016&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;March 31, 2026&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock warrants&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;131&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;April 1, 2016&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;April 1, 2026&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock warrants&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;83,778&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;14.32&#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="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;September 7, 2017&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;September 7, 2024&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock warrants&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;20,944&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;14.32&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;December 7, 2018&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;December 7, 2025&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock warrants (Exchange Warrants)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;804,951&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.001&#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="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;June 22, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;None&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,214,059&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfStockholdersEquityNoteWarrantsOrRightsTextBlock>
    <us-gaap:ClassOfWarrantOrRightOutstanding
      contextRef="icdc158f313e1442b96f7a482d42db0fb_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90YWJsZTo2YTA5MzdmZDNiM2Q0MzdiYTVkMTgwMTA2NmE3ZTdlZi90YWJsZXJhbmdlOjZhMDkzN2ZkM2IzZDQzN2JhNWQxODAxMDY2YTdlN2VmXzEtMS0xLTEtMjEzNTM_e8580c0b-c41b-48c7-9269-bdc45561692b"
      unitRef="shares">237169</us-gaap:ClassOfWarrantOrRightOutstanding>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="icdc158f313e1442b96f7a482d42db0fb_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90YWJsZTo2YTA5MzdmZDNiM2Q0MzdiYTVkMTgwMTA2NmE3ZTdlZi90YWJsZXJhbmdlOjZhMDkzN2ZkM2IzZDQzN2JhNWQxODAxMDY2YTdlN2VmXzEtMy0xLTEtMjEzNTM_19b3c568-b9b3-4b04-9c72-bcb7113d3c4e"
      unitRef="usdPerShare">1.84</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <us-gaap:ClassOfWarrantOrRightOutstanding
      contextRef="i30757d31047c44909b6feb4c9ef7d1a8_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90YWJsZTo2YTA5MzdmZDNiM2Q0MzdiYTVkMTgwMTA2NmE3ZTdlZi90YWJsZXJhbmdlOjZhMDkzN2ZkM2IzZDQzN2JhNWQxODAxMDY2YTdlN2VmXzItMS0xLTEtMjEzNTM_c11c00e5-bb8d-4061-96f8-bd6c5178ce32"
      unitRef="shares">67086</us-gaap:ClassOfWarrantOrRightOutstanding>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="i30757d31047c44909b6feb4c9ef7d1a8_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90YWJsZTo2YTA5MzdmZDNiM2Q0MzdiYTVkMTgwMTA2NmE3ZTdlZi90YWJsZXJhbmdlOjZhMDkzN2ZkM2IzZDQzN2JhNWQxODAxMDY2YTdlN2VmXzItMy0xLTEtMjEzNTM_8e68e763-36a4-4f94-ab55-ee6edb1cce36"
      unitRef="usdPerShare">1.84</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <us-gaap:ClassOfWarrantOrRightOutstanding
      contextRef="id6c5f8461d1e44d2bae8c883ad51fdce_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90YWJsZTo2YTA5MzdmZDNiM2Q0MzdiYTVkMTgwMTA2NmE3ZTdlZi90YWJsZXJhbmdlOjZhMDkzN2ZkM2IzZDQzN2JhNWQxODAxMDY2YTdlN2VmXzMtMS0xLTEtMjEzNTM_d6ce655c-4959-4fd6-b80c-b4a12fd838df"
      unitRef="shares">131</us-gaap:ClassOfWarrantOrRightOutstanding>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="id6c5f8461d1e44d2bae8c883ad51fdce_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90YWJsZTo2YTA5MzdmZDNiM2Q0MzdiYTVkMTgwMTA2NmE3ZTdlZi90YWJsZXJhbmdlOjZhMDkzN2ZkM2IzZDQzN2JhNWQxODAxMDY2YTdlN2VmXzMtMy0xLTEtMjEzNTM_cfd9cf06-2ae5-476c-b866-6926530d0138"
      unitRef="usdPerShare">1.84</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <us-gaap:ClassOfWarrantOrRightOutstanding
      contextRef="i84ebd9ad1b0e443faa73129db5c3410d_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90YWJsZTo2YTA5MzdmZDNiM2Q0MzdiYTVkMTgwMTA2NmE3ZTdlZi90YWJsZXJhbmdlOjZhMDkzN2ZkM2IzZDQzN2JhNWQxODAxMDY2YTdlN2VmXzQtMS0xLTEtMjEzNTM_ef8fe58a-89a4-4bb4-a479-002d26a233e6"
      unitRef="shares">83778</us-gaap:ClassOfWarrantOrRightOutstanding>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="i84ebd9ad1b0e443faa73129db5c3410d_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90YWJsZTo2YTA5MzdmZDNiM2Q0MzdiYTVkMTgwMTA2NmE3ZTdlZi90YWJsZXJhbmdlOjZhMDkzN2ZkM2IzZDQzN2JhNWQxODAxMDY2YTdlN2VmXzQtMy0xLTEtMjEzNTM_eedc2fc4-742a-4975-86aa-83cd626ad8d2"
      unitRef="usdPerShare">14.32</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <us-gaap:ClassOfWarrantOrRightOutstanding
      contextRef="iaa6988d0ef1a47e78b41a5feae043dd1_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90YWJsZTo2YTA5MzdmZDNiM2Q0MzdiYTVkMTgwMTA2NmE3ZTdlZi90YWJsZXJhbmdlOjZhMDkzN2ZkM2IzZDQzN2JhNWQxODAxMDY2YTdlN2VmXzUtMS0xLTEtMjEzNTM_c66b23b8-8de7-4ce7-975f-393cf3225568"
      unitRef="shares">20944</us-gaap:ClassOfWarrantOrRightOutstanding>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="iaa6988d0ef1a47e78b41a5feae043dd1_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90YWJsZTo2YTA5MzdmZDNiM2Q0MzdiYTVkMTgwMTA2NmE3ZTdlZi90YWJsZXJhbmdlOjZhMDkzN2ZkM2IzZDQzN2JhNWQxODAxMDY2YTdlN2VmXzUtMy0xLTEtMjEzNTM_39fad53b-b1b1-4caa-ba43-d44824992441"
      unitRef="usdPerShare">14.32</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <us-gaap:ClassOfWarrantOrRightOutstanding
      contextRef="ia550410464574c309a628bd18a3a148f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90YWJsZTo2YTA5MzdmZDNiM2Q0MzdiYTVkMTgwMTA2NmE3ZTdlZi90YWJsZXJhbmdlOjZhMDkzN2ZkM2IzZDQzN2JhNWQxODAxMDY2YTdlN2VmXzYtMS0xLTEtMjUxODE_f10f0c9c-dfd3-4bca-8147-e9b00a80f6d6"
      unitRef="shares">804951</us-gaap:ClassOfWarrantOrRightOutstanding>
    <us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1
      contextRef="ia550410464574c309a628bd18a3a148f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90YWJsZTo2YTA5MzdmZDNiM2Q0MzdiYTVkMTgwMTA2NmE3ZTdlZi90YWJsZXJhbmdlOjZhMDkzN2ZkM2IzZDQzN2JhNWQxODAxMDY2YTdlN2VmXzYtMy0xLTEtMjYzODY_4abafdc4-bb78-4a33-92fc-3d3eac939891"
      unitRef="usdPerShare">0.001</us-gaap:ClassOfWarrantOrRightExercisePriceOfWarrantsOrRights1>
    <us-gaap:ClassOfWarrantOrRightOutstanding
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90YWJsZTo2YTA5MzdmZDNiM2Q0MzdiYTVkMTgwMTA2NmE3ZTdlZi90YWJsZXJhbmdlOjZhMDkzN2ZkM2IzZDQzN2JhNWQxODAxMDY2YTdlN2VmXzYtMS0xLTEtMjEzNTM_6d749dc4-78f9-4d6a-8b47-1e955610b1b2"
      unitRef="shares">1214059</us-gaap:ClassOfWarrantOrRightOutstanding>
    <exdx:StockIssuedDuringPeriodSharesWarrantsExercisedNet
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xMzkvZnJhZzoxODc2NWU3MTljMzA0MWQxOWQ5MjBiZDUxZGJlOTNjMy90ZXh0cmVnaW9uOjE4NzY1ZTcxOWMzMDQxZDE5ZDkyMGJkNTFkYmU5M2MzXzEwOTk1MTE2MzMzMjE_a416491d-f276-42ea-be63-68d5b9d045e5"
      unitRef="shares">17719</exdx:StockIssuedDuringPeriodSharesWarrantsExercisedNet>
    <us-gaap:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzM4Njg_c8f2fb2e-802e-49fa-b1e6-e0700b99c095">Stock Option Plan&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;2019 Incentive Award Plan&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In September 2019, the Company's Board of Directors adopted, and the Company's stockholders approved, the 2019 Plan. Under the 2019 Plan, which expires in September 2029, the Company may grant stock options, stock appreciation rights, restricted stock, restricted stock units and other awards to individuals who are then employees, officers, non-employee directors or consultants of the Company or its subsidiaries. The options generally expire ten years after the date of grant and are exercisable to the extent vested. Vesting is established by the Board of Directors and is generally four years from the date of grant. The 2019 Plan contains an "evergreen provision" that allows annual increases in the number of shares available for issuance on the first day of each calendar year through January 1, 2029 in an amount equal to the lesser of: (i) 4% of the outstanding capital stock on each &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;December 31st, or (ii) such lesser amount determined by the Board of Directors. As of December&#160;31, 2021, 1,179,571 shares remained available for future awards. Under the evergreen provision, on January 1, 2022, an additional 646,599 shares became available for issuance under the 2019 Plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;2019 Employee Stock Purchase Plan&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In September 2019, the Board of Directors adopted, and the Company's stockholders approved, the ESPP. The ESPP became effective on the day the ESPP was adopted by the Company's Board of Directors. The ESPP permits participants to purchase common stock through payroll deductions of up to 20% of their eligible compensation. The number of shares of common stock available for issuance under the ESPP will be annually increased on the first day of each calendar year during the term of the ESPP through January 1, 2029 in an amount equal to the lesser of (i) 1% of the outstanding capital stock on each December 31st, or (ii) such lesser amount determined by the Board of Directors. As of December&#160;31, 2021, 327,516 shares of common stock remained available for issuance under the ESPP. Under the evergreen provision, on January 1, 2022, an additional 161,649 shares became available for issuances under the ESPP.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock Options&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock option activity under the Company's 2019 Plan is set forth below:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.853%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.911%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.157%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.496%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.163%"/&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Options&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Exercise&#160;Price&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual&lt;br/&gt;Term&#160;(Years)&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&lt;br/&gt;Value&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;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Outstanding, December 31, 2020&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,975,761&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;11.81&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;8.71&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;6,750&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Granted&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;229,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;16.79&#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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Exercised&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(11,950)&lt;/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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;7.40&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Forfeited&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(128,665)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;14.44&#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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Expired&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(50,666)&lt;/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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;17.18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Outstanding, December&#160;31, 2021&lt;/span&gt;&lt;/div&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,014,330&#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 style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;12.10&#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="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;7.87&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,428&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Vested and expected to vest, December&#160;31, 2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,014,330&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top: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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;12.10&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;7.87&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,428&#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;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Options exercisable, December&#160;31, 2021&lt;/span&gt;&lt;/div&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-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,050,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;10.17&#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="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;7.53&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,262&#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;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The weighted-average grant date fair value per share of employee options granted to employees during the years ended December&#160;31, 2021 and 2020 was $8.83 and $7.55, respectively. The intrinsic value is calculated as the difference between the fair value of the Company's common stock and the exercise price of the stock options. The fair value of the Company's common stock is $11.63 and $13.20 per share at December&#160;31, 2021 and 2020, respectively. The intrinsic value of options exercised for the years ended December&#160;31, 2021 and 2020 was $0.1 million and $1.0 million, respectively. As of December&#160;31, 2021, total unrecognized compensation cost related to option awards was $6.3 million, which is expected to be recognized over a remaining weighted-average vesting period of 2.0 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Stock Units&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Restricted stock unit activity under the Company's 2019 Plan is set forth below:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&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:54.163%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.373%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.496%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.378%"/&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Shares&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Grant Date Fair Value&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&lt;br/&gt;Value&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;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Outstanding, December&#160;31, 2020&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Awards granted&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;449,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;16.51&#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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Awards released&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Awards canceled&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(33,675)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;16.24&#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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Outstanding, December&#160;31, 2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;415,325&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;16.54&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,830&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2021, all of the outstanding restricted stock units are unvested. As of December&#160;31, 2021, total unrecognized compensation cost related to restricted stock units was $5.6 million, which is expected to be recognized over a remaining weighted-average vesting period of 3.3 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock-Based Compensation Expense&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Stock Options&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of employee stock options was estimated using the following assumptions to determine the fair value of stock options granted:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:72.876%"/&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;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.180%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.184%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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="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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Expected volatility&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;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:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;56%-60%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;47%-53%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.8%-1.1%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.4%-1.7%&lt;/span&gt;&lt;/div&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Dividend yield&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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Expected term (in years)&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5.50-6.08&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5.5-6.08&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Employee Stock Purchase Plan&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following assumptions were used to calculate the stock-based compensation for each stock purchase right granted under the ESPP:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:72.876%"/&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;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.180%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.184%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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="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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2021&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 #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Expected volatility&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;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:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;45%-60%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;58.0%-83.0%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.1%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.1%-1.1%&lt;/span&gt;&lt;/div&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Dividend yield&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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Expected term (in years)&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.5&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.5&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation expense related to the ESPP for the years ended December&#160;31, 2021 and 2020 was $0.2 million and less than $0.1 million, respectively. As of December&#160;31, 2021, total unrecognized compensation cost related to stock purchase rights granted under the ESPP was less than $0.1 million, which is expected to be recognized over a remaining weighted-average vesting period of 0.2 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total non-cash stock-based compensation expense recorded related to options granted, restricted stock units granted and stock purchase rights granted under the ESPP in the statement of operations is as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:69.075%"/&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;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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="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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Cost of revenue&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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;164&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Selling, general and administrative&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;3,943&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,419&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Research and development&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;621&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;242&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,728&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,694&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Common stock reserved for future issuance consists of the following at December&#160;31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&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.408%"/&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.784%"/&gt;&lt;td style="width:0.1%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Warrants to purchase common stock&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,214,059&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock option grants issued and outstanding&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,014,330&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock reserved for issuance upon vesting of outstanding restricted stock units&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;415,325&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common shares available for grant under the 2019 Plan&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,179,571&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common shares available for future issuance under ESPP&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;327,516&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total&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-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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,150,801&#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:DisclosureOfCompensationRelatedCostsShareBasedPaymentsTextBlock>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="i8a2e6fb2763d49bdb50c3a4b25301d4f_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzM4NjQ_f677bf7d-a03b-47f7-aa17-f62698a3cfe6">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i8a2e6fb2763d49bdb50c3a4b25301d4f_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzM4Njk_4460b0c3-d53f-447d-843e-39ebdd9663b2">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <exdx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalSharesAuthorizedPercentage
      contextRef="i788616046c1b40228a96903acbd736a9_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzI0NzA_cb6ad346-78b8-4a76-b558-2373109dbb66"
      unitRef="number">0.04</exdx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalSharesAuthorizedPercentage>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant
      contextRef="i788616046c1b40228a96903acbd736a9_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEyNzk_8f5070b4-7b1c-4252-80ef-516f1b4c4fc0"
      unitRef="shares">1179571</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAvailableForGrant>
    <exdx:ShareBasedCompensationArrangementByShareBasedPaymentAwardIncreaseDecreaseInNumberOfSharesAuthorized
      contextRef="i57d34c22b43d4105ac768ab42670c108_I20220101"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEzOTI_436a3bee-6859-44c2-9ad3-f46e87e04e6f"
      unitRef="shares">646599</exdx:ShareBasedCompensationArrangementByShareBasedPaymentAwardIncreaseDecreaseInNumberOfSharesAuthorized>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate
      contextRef="i003268fd55904f4394658b449da44cbe_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzI0NzM_730dc0bf-3d88-43d7-86f8-1a7a4afebe58"
      unitRef="number">0.20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardMaximumEmployeeSubscriptionRate>
    <exdx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalSharesAuthorizedPercentage
      contextRef="i003268fd55904f4394658b449da44cbe_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzQ3Nzk_b0b4e0db-5c7c-47c7-a153-c07b3050a171"
      unitRef="number">0.01</exdx:ShareBasedCompensationArrangementByShareBasedPaymentAwardAdditionalSharesAuthorizedPercentage>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="i003268fd55904f4394658b449da44cbe_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzUwMzU_186d162c-d912-4ce7-a070-17bad283672a"
      unitRef="shares">327516</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <exdx:ShareBasedCompensationArrangementByShareBasedPaymentAwardIncreaseDecreaseInNumberOfSharesAuthorized
      contextRef="i34e8a4acc0dd4c82813e62446f33c84b_I20220101"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzQ5NzM_2d0db909-e9bf-41ee-958f-b361a1e84753"
      unitRef="shares">161649</exdx:ShareBasedCompensationArrangementByShareBasedPaymentAwardIncreaseDecreaseInNumberOfSharesAuthorized>
    <us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzM4NjU_cb5e2107-a1f5-4511-9db1-b5a4829b60fa">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock option activity under the Company's 2019 Plan is set forth below:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:46.853%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.911%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.157%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.496%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.163%"/&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Options&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Exercise&#160;Price&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Remaining&lt;br/&gt;Contractual&lt;br/&gt;Term&#160;(Years)&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&lt;br/&gt;Value&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;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Outstanding, December 31, 2020&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,975,761&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;11.81&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;8.71&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;6,750&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Granted&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;229,850&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;16.79&#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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Exercised&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(11,950)&lt;/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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;7.40&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Forfeited&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(128,665)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;14.44&#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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Expired&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(50,666)&lt;/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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;17.18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Outstanding, December&#160;31, 2021&lt;/span&gt;&lt;/div&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,014,330&#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 style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;12.10&#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="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;7.87&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,428&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Vested and expected to vest, December&#160;31, 2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,014,330&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top: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;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;12.10&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;7.87&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,428&#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;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Options exercisable, December&#160;31, 2021&lt;/span&gt;&lt;/div&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-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,050,036&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;10.17&#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="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;7.53&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,262&#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;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationStockOptionsActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzEtMi0xLTEtMjEzNTM_9a19662e-66ca-4e4f-95da-9e6ecbbb3150"
      unitRef="shares">1975761</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzEtNC0xLTEtMjEzNTM_a4370365-eec2-46d5-8b80-b7189b3157f2"
      unitRef="usdPerShare">11.81</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzEtNi0xLTEtMjEzNTM_ba127fb7-583a-46e9-b06b-ca1069a14008">P8Y8M15D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzEtOC0xLTEtMjEzNTM_6dd5d2a0-dc78-4cf6-b960-d249c74205d8"
      unitRef="usd">6750000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzItMi0xLTEtMjEzNTM_dd798bce-dd65-4b28-bc9f-d8ce1bf54e9f"
      unitRef="shares">229850</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzItNC0xLTEtMjEzNTM_051c51c4-05db-4b68-9fa8-007c8d6500b2"
      unitRef="usdPerShare">16.79</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzMtMi0xLTEtMjEzNTM_4f1ec29c-fc8d-4eba-9d55-39240a684e89"
      unitRef="shares">11950</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzMtNC0xLTEtMjEzNTM_c36e36e9-c031-40d7-ae04-d3b492f7e7d1"
      unitRef="usdPerShare">7.40</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzQtMi0xLTEtMjEzNTM_4c36fa15-1ea4-4b09-8442-e2c71cf4747f"
      unitRef="shares">128665</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzQtNC0xLTEtMjEzNTM_4bcb6664-9248-4da2-b152-8b9dc6ff6abb"
      unitRef="usdPerShare">14.44</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzUtMi0xLTEtMjEzNTM_9116751e-0aca-44e7-8264-597d6b365cd6"
      unitRef="shares">50666</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzUtNC0xLTEtMjEzNTM_4c528c5b-4d8f-4e25-bf05-40552baca2f2"
      unitRef="usdPerShare">17.18</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzYtMi0xLTEtMjEzNTM_8267ac27-9355-4d4c-bbe0-745d64f11d9b"
      unitRef="shares">2014330</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzYtNC0xLTEtMjEzNTM_9bb7c9cc-88d9-4d45-88c7-a8cab2925107"
      unitRef="usdPerShare">12.10</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzYtNi0xLTEtMjEzNTM_1c468c6e-c9eb-4a54-bf60-585672ad58b1">P7Y10M13D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzYtOC0xLTEtMjEzNTM_b3bf0758-4fc5-48be-b9cd-4f316223d239"
      unitRef="usd">5428000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzctMi0xLTEtMjEzNTM_3b850193-5fcb-4326-8d9d-1eb469216efc"
      unitRef="shares">2014330</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzctNC0xLTEtMjEzNTM_e2b7110d-53f0-4396-b34d-cfedb8f829c9"
      unitRef="usdPerShare">12.10</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzctNi0xLTEtMjEzNTM_8cafb003-aebe-4733-9550-1ccfc65f2878">P7Y10M13D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzctOC0xLTEtMjEzNTM_e83aa0e1-f55d-4408-bb17-8179a217f77d"
      unitRef="usd">5428000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestOutstandingAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzgtMi0xLTEtMjEzNTM_50ecd12b-c274-498b-abcc-50b5752c84c5"
      unitRef="shares">1050036</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzgtNC0xLTEtMjEzNTM_2325179b-9572-41f8-895c-9e1d8f5b8490"
      unitRef="usdPerShare">10.17</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzgtNi0xLTEtMjEzNTM_82f38e19-9b8c-4a27-98d1-b150bcdb1fa4">P7Y6M10D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsVestedAndExpectedToVestExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3OWMwOTJiNDZjNDk0MjEyODgwZjhjMzdiNDc4OGI4ZS90YWJsZXJhbmdlOjc5YzA5MmI0NmM0OTQyMTI4ODBmOGMzN2I0Nzg4YjhlXzgtOC0xLTEtMjEzNTM_ca9027f9-e925-4cd3-a31f-62fb9f0a7a74"
      unitRef="usd">4262000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsVestedAndExpectedToVestExercisableAggregateIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzE2NTg_7365951c-12ac-41a8-84d0-86ebc270fdcf"
      unitRef="usdPerShare">8.83</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzE2NjU_385bf7c3-e251-47c8-a582-fce7902dab1a"
      unitRef="usdPerShare">7.55</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzE4ODE_9b7f9940-ed50-4f66-b5a9-b9d7c798b1fc"
      unitRef="usdPerShare">11.63</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzE4ODg_d0e1084d-4910-459c-ac23-44515cac28b6"
      unitRef="usdPerShare">13.20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzIwMDg_05d92e62-9c9b-42eb-b2de-95e163128193"
      unitRef="usd">100000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzUxODE_d305d536-009a-40ff-b3df-2bf50199b669"
      unitRef="usd">1000000.0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzUyNzE_666f9ed6-4e58-427b-a415-76d81bad4e8e"
      unitRef="usd">6300000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzUzOTE_e24c3c69-ed13-43d6-9a1c-ca527935b423">P2Y</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzQ5NDc4MDIzMzQyODc_bca066e3-499a-418f-b7c0-1d3404a0c8f5">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Restricted stock unit activity under the Company's 2019 Plan is set forth below:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&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:54.163%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.373%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.496%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.378%"/&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Number&#160;of&lt;br/&gt;Shares&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Weighted-&lt;br/&gt;Average&lt;br/&gt;Grant Date Fair Value&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Aggregate&lt;br/&gt;Intrinsic&lt;br/&gt;Value&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;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Outstanding, December&#160;31, 2020&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Awards granted&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;449,000&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;16.51&#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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Awards released&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 19pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Awards canceled&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(33,675)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;16.24&#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="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Outstanding, December&#160;31, 2021&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;415,325&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;16.54&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,830&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedCompensationRestrictedStockUnitsAwardActivityTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i32a51ce8dcbf4ec8b9f063adfc896c85_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTowMTRjODQ5MGU1ZTU0YjJiOTMyMTQ3YzNhZGIzMGQ2Yy90YWJsZXJhbmdlOjAxNGM4NDkwZTVlNTRiMmI5MzIxNDdjM2FkYjMwZDZjXzEtMi0xLTEtMjU1MjM_cff3e709-5ad7-489f-8beb-1ee488c60ead"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i32a51ce8dcbf4ec8b9f063adfc896c85_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTowMTRjODQ5MGU1ZTU0YjJiOTMyMTQ3YzNhZGIzMGQ2Yy90YWJsZXJhbmdlOjAxNGM4NDkwZTVlNTRiMmI5MzIxNDdjM2FkYjMwZDZjXzEtNC0xLTEtMjU1MjM_2d9b1102-2907-4868-8444-3aa27c555194"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="i32a51ce8dcbf4ec8b9f063adfc896c85_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTowMTRjODQ5MGU1ZTU0YjJiOTMyMTQ3YzNhZGIzMGQ2Yy90YWJsZXJhbmdlOjAxNGM4NDkwZTVlNTRiMmI5MzIxNDdjM2FkYjMwZDZjXzEtNi0xLTEtMjU1MjM_bbe95cad-f70b-47d6-9311-7b0793b0be64"
      unitRef="usd">0</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="ia8262400b5eb40cdbb00b7fa41ab8129_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTowMTRjODQ5MGU1ZTU0YjJiOTMyMTQ3YzNhZGIzMGQ2Yy90YWJsZXJhbmdlOjAxNGM4NDkwZTVlNTRiMmI5MzIxNDdjM2FkYjMwZDZjXzItMi0xLTEtMjU1MjM_673c2e35-91a1-4cea-a03a-c625f04bf86c"
      unitRef="shares">449000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="ia8262400b5eb40cdbb00b7fa41ab8129_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTowMTRjODQ5MGU1ZTU0YjJiOTMyMTQ3YzNhZGIzMGQ2Yy90YWJsZXJhbmdlOjAxNGM4NDkwZTVlNTRiMmI5MzIxNDdjM2FkYjMwZDZjXzItNC0xLTEtMjU1MjM_328efb44-558d-497f-8f61-0bda2ac4c951"
      unitRef="usdPerShare">16.51</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="ia8262400b5eb40cdbb00b7fa41ab8129_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTowMTRjODQ5MGU1ZTU0YjJiOTMyMTQ3YzNhZGIzMGQ2Yy90YWJsZXJhbmdlOjAxNGM4NDkwZTVlNTRiMmI5MzIxNDdjM2FkYjMwZDZjXzMtMi0xLTEtMjU1MjM_2a5a2e03-db8c-470e-9eb1-212a1ccff381"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="ia8262400b5eb40cdbb00b7fa41ab8129_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTowMTRjODQ5MGU1ZTU0YjJiOTMyMTQ3YzNhZGIzMGQ2Yy90YWJsZXJhbmdlOjAxNGM4NDkwZTVlNTRiMmI5MzIxNDdjM2FkYjMwZDZjXzMtNC0xLTEtMjU1MjM_9307285d-03f1-46ff-9fb9-da51665ea2ba"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="ia8262400b5eb40cdbb00b7fa41ab8129_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTowMTRjODQ5MGU1ZTU0YjJiOTMyMTQ3YzNhZGIzMGQ2Yy90YWJsZXJhbmdlOjAxNGM4NDkwZTVlNTRiMmI5MzIxNDdjM2FkYjMwZDZjXzQtMi0xLTEtMjU1MjM_615c65b8-347f-489f-937f-0a250ab4619f"
      unitRef="shares">33675</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="ia8262400b5eb40cdbb00b7fa41ab8129_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTowMTRjODQ5MGU1ZTU0YjJiOTMyMTQ3YzNhZGIzMGQ2Yy90YWJsZXJhbmdlOjAxNGM4NDkwZTVlNTRiMmI5MzIxNDdjM2FkYjMwZDZjXzQtNC0xLTEtMjU1MjM_92eb5e9f-5829-4dfb-96f5-c077528cada3"
      unitRef="usdPerShare">16.24</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="iaf75a6ebdd6f462cbbaf4089099cad0f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTowMTRjODQ5MGU1ZTU0YjJiOTMyMTQ3YzNhZGIzMGQ2Yy90YWJsZXJhbmdlOjAxNGM4NDkwZTVlNTRiMmI5MzIxNDdjM2FkYjMwZDZjXzUtMi0xLTEtMjU1MjM_2152582c-f82c-4feb-a227-12dea5a6bb85"
      unitRef="shares">415325</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="iaf75a6ebdd6f462cbbaf4089099cad0f_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTowMTRjODQ5MGU1ZTU0YjJiOTMyMTQ3YzNhZGIzMGQ2Yy90YWJsZXJhbmdlOjAxNGM4NDkwZTVlNTRiMmI5MzIxNDdjM2FkYjMwZDZjXzUtNC0xLTEtMjU1MjM_dc2fbe0e-4824-48b9-b5c4-a4e6fbe26d90"
      unitRef="usdPerShare">16.54</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding
      contextRef="iaf75a6ebdd6f462cbbaf4089099cad0f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTowMTRjODQ5MGU1ZTU0YjJiOTMyMTQ3YzNhZGIzMGQ2Yy90YWJsZXJhbmdlOjAxNGM4NDkwZTVlNTRiMmI5MzIxNDdjM2FkYjMwZDZjXzUtNi0xLTEtMjU1MjM_59042170-ae30-4e84-ac35-8b81b661373b"
      unitRef="usd">4830000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueOutstanding>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized
      contextRef="iaf75a6ebdd6f462cbbaf4089099cad0f_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzU3NjM_e4213eab-df5e-444c-95cd-b6e9da971da1"
      unitRef="usd">5600000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognized>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="ia8262400b5eb40cdbb00b7fa41ab8129_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzU4ODE_906de821-ce60-4dc8-a44b-048e09ef3dac">P3Y3M18D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzM4NzA_592626dd-364f-4db3-8aaa-c5e01d3be9ea">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of employee stock options was estimated using the following assumptions to determine the fair value of stock options granted:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:72.876%"/&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;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.180%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.184%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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="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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Expected volatility&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;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:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;56%-60%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;47%-53%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.8%-1.1%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.4%-1.7%&lt;/span&gt;&lt;/div&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Dividend yield&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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Expected term (in years)&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5.50-6.08&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5.5-6.08&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following assumptions were used to calculate the stock-based compensation for each stock purchase right granted under the ESPP:&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:72.876%"/&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;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.180%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.184%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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="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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2021&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 #000000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Expected volatility&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;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:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;45%-60%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;58.0%-83.0%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Risk-free interest rate&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.1%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.1%-1.1%&lt;/span&gt;&lt;/div&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Dividend yield&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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Expected term (in years)&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.5&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.5&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation expense related to the ESPP for the years ended December&#160;31, 2021 and 2020 was $0.2 million and less than $0.1 million, respectively. As of December&#160;31, 2021, total unrecognized compensation cost related to stock purchase rights granted under the ESPP was less than $0.1 million, which is expected to be recognized over a remaining weighted-average vesting period of 0.2 years.&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum
      contextRef="if0c8b4d943304e29958d97963bd17840_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzItNi0xLTEtMjEzNTMvdGV4dHJlZ2lvbjoxZjlkMWY2ZWJkNTY0NzViOTQ2OGMzMDg3MTA4NjQ2N180_020b9139-e3bd-41fe-bf7d-92f16d073139"
      unitRef="number">0.56</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum
      contextRef="if0c8b4d943304e29958d97963bd17840_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzItNi0xLTEtMjEzNTMvdGV4dHJlZ2lvbjoxZjlkMWY2ZWJkNTY0NzViOTQ2OGMzMDg3MTA4NjQ2N183_1d70b108-c384-4d69-bc48-630a401b2123"
      unitRef="number">0.60</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum
      contextRef="ib1a3cd65afaf406c9ff45b454c74f584_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzItOC0xLTEtMjEzNTMvdGV4dHJlZ2lvbjpjNzdiNTcxZGYwMzk0MmNlYmY5MmE5YTVmNTNkMTg0MF80_b157dea0-3a5a-4002-9e3d-86f2fe14e6b9"
      unitRef="number">0.47</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum
      contextRef="ib1a3cd65afaf406c9ff45b454c74f584_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzItOC0xLTEtMjEzNTMvdGV4dHJlZ2lvbjpjNzdiNTcxZGYwMzk0MmNlYmY5MmE5YTVmNTNkMTg0MF83_d6f44f57-d66f-450c-9d53-2bbb82a50956"
      unitRef="number">0.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum
      contextRef="if0c8b4d943304e29958d97963bd17840_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzMtNi0xLTEtMjEzNTMvdGV4dHJlZ2lvbjpjN2QwYjVhNGMwYTI0ZjJjYTU2YWRiMzIzNWU4ZmY5YV80_2fa1ddfd-a35e-4eed-b5e4-222753652fe5"
      unitRef="number">0.008</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum
      contextRef="if0c8b4d943304e29958d97963bd17840_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzMtNi0xLTEtMjEzNTMvdGV4dHJlZ2lvbjpjN2QwYjVhNGMwYTI0ZjJjYTU2YWRiMzIzNWU4ZmY5YV83_f7167ead-f6a2-4b35-9ceb-8022cd573172"
      unitRef="number">0.011</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum
      contextRef="ib1a3cd65afaf406c9ff45b454c74f584_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzMtOC0xLTEtMjEzNTMvdGV4dHJlZ2lvbjphMDYyZGRlZjU4MWU0YmQ3YTkzZmJmNGNkMWJjOGNhM180_575dc636-95e8-4cdd-a310-543eae8527a8"
      unitRef="number">0.004</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum
      contextRef="ib1a3cd65afaf406c9ff45b454c74f584_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzMtOC0xLTEtMjEzNTMvdGV4dHJlZ2lvbjphMDYyZGRlZjU4MWU0YmQ3YTkzZmJmNGNkMWJjOGNhM183_a47c4d1d-0c32-4e14-b41b-eb3374859936"
      unitRef="number">0.017</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="if0c8b4d943304e29958d97963bd17840_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzQtNi0xLTEtMjEzNTM_950039b0-8388-495f-aa3c-60eed758cc8a"
      unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="ib1a3cd65afaf406c9ff45b454c74f584_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzQtOC0xLTEtMjEzNTM_6094a542-4c99-4a57-bd4f-68a95c4ffa80"
      unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i9d16e908b3b940e68785cde3a05b8f93_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzUtNi0xLTEtMjEzNTMvdGV4dHJlZ2lvbjoyMjY1N2I0MzRiM2I0MTUxODc0M2Y5Y2Q3NTQzNDU2M180_c47d886b-8c5f-41b5-aa28-dc62f9d21825">P5Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="ia4ce2d5a6af74d16a3bf28bfdd27c368_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzUtNi0xLTEtMjEzNTMvdGV4dHJlZ2lvbjoyMjY1N2I0MzRiM2I0MTUxODc0M2Y5Y2Q3NTQzNDU2M183_3dce46d5-67d4-42cf-b0d7-1f7c05ea2622">P6Y29D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i685d4d8cd63747969fb91ab6335ffb82_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzUtOC0xLTEtMjEzNTMvdGV4dHJlZ2lvbjo4MzcxMmU2MmJiNjU0OTYxOWIxZTI4NDI1OGMwMzZmZV80_9a973dd6-b202-45d3-a861-f93a5b4b2031">P5Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i6a416f8219184609a604b19e6cb5cd69_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTozN2IwZmM2NzUzMWI0OWNlODgxOGNlOWU1MDM4MmY0ZC90YWJsZXJhbmdlOjM3YjBmYzY3NTMxYjQ5Y2U4ODE4Y2U5ZTUwMzgyZjRkXzUtOC0xLTEtMjEzNTMvdGV4dHJlZ2lvbjo4MzcxMmU2MmJiNjU0OTYxOWIxZTI4NDI1OGMwMzZmZV83_2a6e4b1e-c8ed-4094-8e9f-4508c6d7b9dd">P6Y29D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum
      contextRef="i12bf48e36a6043ef91054779ae1e3404_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3ZGUxNjAyZWY4NTQ0MjY0OTFmMTVkZWMxYTVjODJmOC90YWJsZXJhbmdlOjdkZTE2MDJlZjg1NDQyNjQ5MWYxNWRlYzFhNWM4MmY4XzItNi0xLTEtMjEzNTMvdGV4dHJlZ2lvbjoyNzk0ZDNhNDNiY2Y0ZTE1ODU4YWY5OTE1MDJkNTE3Ml80_6ec7dfeb-ed33-4570-9e86-bc2b1846d713"
      unitRef="number">0.45</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum
      contextRef="i12bf48e36a6043ef91054779ae1e3404_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3ZGUxNjAyZWY4NTQ0MjY0OTFmMTVkZWMxYTVjODJmOC90YWJsZXJhbmdlOjdkZTE2MDJlZjg1NDQyNjQ5MWYxNWRlYzFhNWM4MmY4XzItNi0xLTEtMjEzNTMvdGV4dHJlZ2lvbjoyNzk0ZDNhNDNiY2Y0ZTE1ODU4YWY5OTE1MDJkNTE3Ml83_4d7b470b-b16a-4487-87ff-cd90a8347600"
      unitRef="number">0.60</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum
      contextRef="i1db4a411e10f4d64bbf2c9d4fb0491ae_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3ZGUxNjAyZWY4NTQ0MjY0OTFmMTVkZWMxYTVjODJmOC90YWJsZXJhbmdlOjdkZTE2MDJlZjg1NDQyNjQ5MWYxNWRlYzFhNWM4MmY4XzItOC0xLTEtMjU3MjUvdGV4dHJlZ2lvbjo2ZjAzNmQyNjRhODc0OWM3YjE2ZjA3ODYyYzg1OGJjMF8xMDk5NTExNjI3Nzkw_647ff2f9-1c79-4a99-a739-c0c7e3763d55"
      unitRef="number">0.580</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMinimum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum
      contextRef="i1db4a411e10f4d64bbf2c9d4fb0491ae_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3ZGUxNjAyZWY4NTQ0MjY0OTFmMTVkZWMxYTVjODJmOC90YWJsZXJhbmdlOjdkZTE2MDJlZjg1NDQyNjQ5MWYxNWRlYzFhNWM4MmY4XzItOC0xLTEtMjU3MjUvdGV4dHJlZ2lvbjo2ZjAzNmQyNjRhODc0OWM3YjE2ZjA3ODYyYzg1OGJjMF8xMDk5NTExNjI3Nzk2_ad180624-0bb8-4599-9559-f0c93e379c2a"
      unitRef="number">0.830</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRateMaximum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum
      contextRef="i12bf48e36a6043ef91054779ae1e3404_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3ZGUxNjAyZWY4NTQ0MjY0OTFmMTVkZWMxYTVjODJmOC90YWJsZXJhbmdlOjdkZTE2MDJlZjg1NDQyNjQ5MWYxNWRlYzFhNWM4MmY4XzMtNi0xLTEtMjEzNTMvdGV4dHJlZ2lvbjozODdjYzc0ZGEyMTg0ZmY0ODdjMzZkNmQzMzQ2M2IyNF80_d263e8b5-2997-4198-96e2-a69ebd23e105"
      unitRef="number">0.001</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum
      contextRef="i1db4a411e10f4d64bbf2c9d4fb0491ae_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3ZGUxNjAyZWY4NTQ0MjY0OTFmMTVkZWMxYTVjODJmOC90YWJsZXJhbmdlOjdkZTE2MDJlZjg1NDQyNjQ5MWYxNWRlYzFhNWM4MmY4XzMtOC0xLTEtMjU3MzcvdGV4dHJlZ2lvbjo3YThkMGYxNGVkYWU0MDEwOGVhMWEyMTk1NzBiYTJjM18xMDk5NTExNjI3Nzkz_11d33b95-2304-43af-8b7a-f8152b7ad5c5"
      unitRef="number">0.001</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMinimum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum
      contextRef="i1db4a411e10f4d64bbf2c9d4fb0491ae_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3ZGUxNjAyZWY4NTQ0MjY0OTFmMTVkZWMxYTVjODJmOC90YWJsZXJhbmdlOjdkZTE2MDJlZjg1NDQyNjQ5MWYxNWRlYzFhNWM4MmY4XzMtOC0xLTEtMjU3MzcvdGV4dHJlZ2lvbjo3YThkMGYxNGVkYWU0MDEwOGVhMWEyMTk1NzBiYTJjM18xMDk5NTExNjI3ODAw_9429c9e8-6aee-403d-8fe7-3df615b9ccf4"
      unitRef="number">0.011</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRateMaximum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i12bf48e36a6043ef91054779ae1e3404_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3ZGUxNjAyZWY4NTQ0MjY0OTFmMTVkZWMxYTVjODJmOC90YWJsZXJhbmdlOjdkZTE2MDJlZjg1NDQyNjQ5MWYxNWRlYzFhNWM4MmY4XzQtNi0xLTEtMjEzNTM_95fae718-0d2e-44bb-8199-0bf27a09fe07"
      unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i1db4a411e10f4d64bbf2c9d4fb0491ae_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3ZGUxNjAyZWY4NTQ0MjY0OTFmMTVkZWMxYTVjODJmOC90YWJsZXJhbmdlOjdkZTE2MDJlZjg1NDQyNjQ5MWYxNWRlYzFhNWM4MmY4XzQtOC0xLTEtMjU3NTc_14fdcb64-2430-499f-af69-ba932d6e8f0b"
      unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i12bf48e36a6043ef91054779ae1e3404_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3ZGUxNjAyZWY4NTQ0MjY0OTFmMTVkZWMxYTVjODJmOC90YWJsZXJhbmdlOjdkZTE2MDJlZjg1NDQyNjQ5MWYxNWRlYzFhNWM4MmY4XzUtNi0xLTEtMjEzNTM_5508223d-d2de-47a1-85f3-084a4bb43727">P0Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i1db4a411e10f4d64bbf2c9d4fb0491ae_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo3ZGUxNjAyZWY4NTQ0MjY0OTFmMTVkZWMxYTVjODJmOC90YWJsZXJhbmdlOjdkZTE2MDJlZjg1NDQyNjQ5MWYxNWRlYzFhNWM4MmY4XzUtOC0xLTEtMjU3NTA_d4288bd2-8277-494d-ae17-4ac388ee1b29">P0Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i12bf48e36a6043ef91054779ae1e3404_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzY2MTM_4ddee1e6-2c23-4653-861c-bc75420ef3ce"
      unitRef="usd">200000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i1db4a411e10f4d64bbf2c9d4fb0491ae_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzcxMzQ_33800ced-e930-4fea-8a03-be0ff05c2da7"
      unitRef="usd">100000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="i003268fd55904f4394658b449da44cbe_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzcxNzc_a34fe24b-726e-41f1-8c4e-9a74020d471c"
      unitRef="usd">100000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="i12bf48e36a6043ef91054779ae1e3404_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzEwOTk1MTE2MzY4NjU_637fc4b1-7f77-4dc2-bb48-abad9c72810f">P0Y2M12D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzM4Njc_3a338071-7399-4d03-8654-fa19e9188672">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total non-cash stock-based compensation expense recorded related to options granted, restricted stock units granted and stock purchase rights granted under the ESPP in the statement of operations is as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:12pt;font-weight:400;line-height:120%"&gt;&#160;&lt;/span&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:69.075%"/&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;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.530%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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="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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;Years Ended December 31,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#160;&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;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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:7pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Cost of revenue&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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;164&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;33&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Selling, general and administrative&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;3,943&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,419&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Research and development&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;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;621&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;242&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total&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;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;4,728&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,694&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ie0791c30689544f182cfe5da26dd1d5f_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTpkYTY1MTBmNWZhN2Q0OTY4ODQwNzgwMDIxOTc1MDdiYS90YWJsZXJhbmdlOmRhNjUxMGY1ZmE3ZDQ5Njg4NDA3ODAwMjE5NzUwN2JhXzItNi0xLTEtMjEzNTM_d0f17d3a-df0b-4da2-b5d8-347b46067d17"
      unitRef="usd">164000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ifbeb0aa50fcc4ffda8c0fc15cbabaf81_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTpkYTY1MTBmNWZhN2Q0OTY4ODQwNzgwMDIxOTc1MDdiYS90YWJsZXJhbmdlOmRhNjUxMGY1ZmE3ZDQ5Njg4NDA3ODAwMjE5NzUwN2JhXzItOC0xLTEtMjEzNTM_ed57758b-2252-475f-a9a3-e11c2daed736"
      unitRef="usd">33000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="if8210fd199e249fa848620ceb0493c8a_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTpkYTY1MTBmNWZhN2Q0OTY4ODQwNzgwMDIxOTc1MDdiYS90YWJsZXJhbmdlOmRhNjUxMGY1ZmE3ZDQ5Njg4NDA3ODAwMjE5NzUwN2JhXzMtNi0xLTEtMjEzNTM_f8ffd9d7-32dc-4bbf-9547-c9eb74eff581"
      unitRef="usd">3943000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ieef7d157745f4029a5cfd0c8ea9a498c_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTpkYTY1MTBmNWZhN2Q0OTY4ODQwNzgwMDIxOTc1MDdiYS90YWJsZXJhbmdlOmRhNjUxMGY1ZmE3ZDQ5Njg4NDA3ODAwMjE5NzUwN2JhXzMtOC0xLTEtMjEzNTM_12291941-1233-4b3c-bf31-b13247eaaa14"
      unitRef="usd">2419000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i8ca5817939864e2c9823a4874cd4909c_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTpkYTY1MTBmNWZhN2Q0OTY4ODQwNzgwMDIxOTc1MDdiYS90YWJsZXJhbmdlOmRhNjUxMGY1ZmE3ZDQ5Njg4NDA3ODAwMjE5NzUwN2JhXzQtNi0xLTEtMjEzNTM_94e9c57f-8ff4-46fc-9b01-3a29bd99d488"
      unitRef="usd">621000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i840edcf7a39843ed9b99c68985958ee9_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTpkYTY1MTBmNWZhN2Q0OTY4ODQwNzgwMDIxOTc1MDdiYS90YWJsZXJhbmdlOmRhNjUxMGY1ZmE3ZDQ5Njg4NDA3ODAwMjE5NzUwN2JhXzQtOC0xLTEtMjEzNTM_dd7b9ef9-84c3-4883-82ac-4607ac4d6bd6"
      unitRef="usd">242000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTpkYTY1MTBmNWZhN2Q0OTY4ODQwNzgwMDIxOTc1MDdiYS90YWJsZXJhbmdlOmRhNjUxMGY1ZmE3ZDQ5Njg4NDA3ODAwMjE5NzUwN2JhXzUtNi0xLTEtMjEzNTM_d5a3f789-7960-4ddf-8b33-92f7ad09212c"
      unitRef="usd">4728000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTpkYTY1MTBmNWZhN2Q0OTY4ODQwNzgwMDIxOTc1MDdiYS90YWJsZXJhbmdlOmRhNjUxMGY1ZmE3ZDQ5Njg4NDA3ODAwMjE5NzUwN2JhXzUtOC0xLTEtMjEzNTM_ab0ed4b7-0eba-4495-aa2f-63e42bc1307e"
      unitRef="usd">2694000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90ZXh0cmVnaW9uOjU5OWY0M2I2NjFjMzRkYTE5MGIyODhlZDAxZWNhOGRhXzM4NjY_f3bf2094-928a-40fd-9e4d-7d057827c1f0">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Common stock reserved for future issuance consists of the following at December&#160;31, 2021:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&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.408%"/&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.784%"/&gt;&lt;td style="width:0.1%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Warrants to purchase common stock&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,214,059&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock option grants issued and outstanding&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;2,014,330&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common stock reserved for issuance upon vesting of outstanding restricted stock units&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;415,325&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common shares available for grant under the 2019 Plan&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,179,571&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Common shares available for future issuance under ESPP&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;327,516&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total&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-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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;5,150,801&#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:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="i512f1f704a30420fa5828634e2d0eb13_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo5MjBkNDM0YmJiOTY0ZDBhOTk2Nzc1YTAyNTE5NGZhNy90YWJsZXJhbmdlOjkyMGQ0MzRiYmI5NjRkMGE5OTY3NzVhMDI1MTk0ZmE3XzAtMi0xLTEtMjEzNTM_827bec13-feba-4466-8973-248b1e5fed9b"
      unitRef="shares">1214059</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="i8cc1ec6f21af4a7db857c1045751bf34_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo5MjBkNDM0YmJiOTY0ZDBhOTk2Nzc1YTAyNTE5NGZhNy90YWJsZXJhbmdlOjkyMGQ0MzRiYmI5NjRkMGE5OTY3NzVhMDI1MTk0ZmE3XzEtMi0xLTEtMjEzNTM_cd70d94c-a278-4554-8d60-c28d12fa37d5"
      unitRef="shares">2014330</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="iaf75a6ebdd6f462cbbaf4089099cad0f_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo5MjBkNDM0YmJiOTY0ZDBhOTk2Nzc1YTAyNTE5NGZhNy90YWJsZXJhbmdlOjkyMGQ0MzRiYmI5NjRkMGE5OTY3NzVhMDI1MTk0ZmE3XzItMi0xLTEtMjU4NzU_8d2e63f7-c363-42f9-af14-4f525fc5993f"
      unitRef="shares">415325</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="i066fc05efc394c5299ec2dfbe051952e_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo5MjBkNDM0YmJiOTY0ZDBhOTk2Nzc1YTAyNTE5NGZhNy90YWJsZXJhbmdlOjkyMGQ0MzRiYmI5NjRkMGE5OTY3NzVhMDI1MTk0ZmE3XzItMi0xLTEtMjEzNTM_d58ff70a-94c2-4c19-ab91-90680ba91150"
      unitRef="shares">1179571</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="i003268fd55904f4394658b449da44cbe_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo5MjBkNDM0YmJiOTY0ZDBhOTk2Nzc1YTAyNTE5NGZhNy90YWJsZXJhbmdlOjkyMGQ0MzRiYmI5NjRkMGE5OTY3NzVhMDI1MTk0ZmE3XzMtMi0xLTEtMjEzNTM_dafc0588-6816-4aa2-90f6-56a5971237f1"
      unitRef="shares">327516</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDUvZnJhZzo1OTlmNDNiNjYxYzM0ZGExOTBiMjg4ZWQwMWVjYThkYS90YWJsZTo5MjBkNDM0YmJiOTY0ZDBhOTk2Nzc1YTAyNTE5NGZhNy90YWJsZXJhbmdlOjkyMGQ0MzRiYmI5NjRkMGE5OTY3NzVhMDI1MTk0ZmE3XzQtMi0xLTEtMjEzNTM_448f22df-bd35-4de3-a5e5-21931532df53"
      unitRef="shares">5150801</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzMzNTU_1ebe5187-3ffe-4a59-a222-a0de4a6e3be5">Income Taxes&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The provision for income taxes consists of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="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:65.566%"/&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:14.543%"/&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:14.545%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Years Ended December 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 #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top: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="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27&#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 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total current&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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Deferred:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Federal&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;137&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(117)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;11&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;11&#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 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total deferred&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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;148&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(106)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Provision (benefit) for income tax&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;175&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(79)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-indent:24.75pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The effective tax rate of our provision for income taxes differs from the federal statutory rate as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="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:69.660%"/&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:12.496%"/&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:12.498%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Years Ended December 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 #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Federal statutory tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(21.0)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(21.0)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;State income taxes, net of federal tax benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(3.8)&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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(3.9)&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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Research and development tax credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1.2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(0.5)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Stock compensation&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.9&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1.0&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Non-deductible expenses&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;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:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Change in valuation allowance&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;24.6&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;22.6&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Effective tax rate&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-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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.6&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&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-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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(0.5)&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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Significant components of the Company&#x2019;s deferred tax assets at December&#160;31, 2021 and 2020 are shown below. A valuation allowance has been established as realization of the Company&#x2019;s deferred tax assets has not met the more likely-than-not threshold requirement. If the Company&#x2019;s judgment changes and it is determined that the Company will be able to realize these deferred tax assets, the tax benefits relating to any reversal of the valuation allowance on deferred tax assets will be accounted for as a reduction to income tax expense (in thousands).&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&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:65.566%"/&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:14.543%"/&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:14.545%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 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 #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;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="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Net operating loss carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;22,365&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;17,733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Research and development tax credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,102&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;629&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accruals, reserves and other&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,055&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;920&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Interest expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,953&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,306&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Basis differences in fixed and intangible assets&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Stock compensation&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,407&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;528&#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 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total gross deferred tax assets&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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27,882&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;21,233&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Less: valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(27,158)&lt;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(20,596)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Deferred tax assets, net&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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;724&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;637&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top: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="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Financing and acquisition-related liabilities&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(335)&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(336)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Indefinite lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(521)&lt;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(459)&lt;/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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Basis differences in fixed and intangible assets&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(175)&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:'Arial',sans-serif;font-size:8pt;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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Deferred tax liabilities, net&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1,031)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(795)&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="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Net deferred tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(307)&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(158)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Changes in the valuation allowance for deferred tax assets during the years ended December&#160;31, 2021 and 2020, which related primarily to increases in net operating loss (NOL) carryforwards, accrued revenue and accruals and reserves were as follows (in thousands):&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:65.566%"/&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:14.543%"/&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:14.545%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 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 #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Valuation allowance at the beginning of the year&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;20,596&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;16,797&#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="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Decreases recorded as benefits to income tax provision&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Increases recorded to income tax provision&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;6,562&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;3,799&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Valuation allowance at the end of the year&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27,158&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;20,596&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At December&#160;31, 2021 and 2020, the Company had federal NOL carryforwards of approximately $89.4 million and $70.6 million, respectively. At December&#160;31, 2021 and 2020, the Company had state NOL carryforwards of $61.0 million and $48.9 million, respectively. Approximately $43.5 million of the federal tax loss carryforwards will begin to expire in 2022, unless previously utilized. The federal NOL carryforwards generated in after December 31, 2017 of $45.9 million will carryforward indefinitely. The Company&#x2019;s state tax loss carryforwards will expire in 2032, unless previously utilized. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At December 31, 2019, the Company's deferred tax assets are primarily comprised of federal and state tax NOL carryforwards. The Company completed a formal study through the year ended December 31, 2019 and determined ownership changes within the meaning of Internal Revenue Code (IRC), Section 382 had occurred in 2003, 2008, 2012, 2017 and 2019. Based on the analysis, $61.8 million of the Company's tax attribute carryforwards through December 31, 2017 cannot be utilized under IRC Section 382. The Company's ability to utilize NOL carryforwards generated after December 31, 2017 will not expire under the Tax Cuts and Jobs Act of 2017. The Company adjusted tax attribute carry forwards and deferred tax assets accordingly. As the deferred tax assets associated with the tax attribute carry forwards were fully offset by a valuation allowance, a corresponding reduction in the Company's valuation allowance was also recorded, resulting in no income tax impact. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company is subject to taxation in the U.S. and in various state jurisdictions. The Company&#x2019;s tax years for 2002 and forward are subject to examination by the U.S. and state tax authorities due to the carryforward of unutilized net operating losses and research and development credits. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes interest and/or penalties related to income tax matters in its provision for income taxes. The Company does not have any accruals for, and did not recognize any, interest or penalties in these financial statements in any period presented. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Uncertain Tax Positions &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;At December&#160;31, 2021 and 2020, the Company had no unrecognized tax benefits. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company does not believe that the balance of unrecognized tax benefits will materially change within the next twelve months.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzMzNTE_3be8bd93-a895-4dc0-a722-e51a644308e5">&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The provision for income taxes consists of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="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:65.566%"/&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:14.543%"/&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:14.545%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Years Ended December 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 #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Current:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top: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="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27&#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 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total current&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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Deferred:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Federal&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;137&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(117)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;11&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;11&#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 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total deferred&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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;148&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(106)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Provision (benefit) for income tax&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;175&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(79)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzMtMi0xLTEtMjEzNTM_716af298-9e30-42c9-8ecb-fd9470569aff"
      unitRef="usd">0</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzMtNC0xLTEtMjEzNTM_fa680de9-5f26-4f56-9197-f88669decfd4"
      unitRef="usd">0</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzQtMi0xLTEtMjEzNTM_277fb5dd-4466-4a2b-b0e8-345337dd3537"
      unitRef="usd">27000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzQtNC0xLTEtMjEzNTM_ddeb4b02-2e44-4995-a925-33c89c85f28f"
      unitRef="usd">27000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzUtMi0xLTEtMjEzNTM_1fd3d2ac-1e31-4f07-9137-d1fe50566d5f"
      unitRef="usd">27000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzUtNC0xLTEtMjEzNTM_fb35722f-d610-420f-94d6-ecbf45425980"
      unitRef="usd">27000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzctMi0xLTEtMjEzNTM_769e8a58-be0d-460d-80af-f7b804b06108"
      unitRef="usd">137000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzctNC0xLTEtMjEzNTM_6e2d53ab-28cd-4258-a1f8-6ad85c1fdcdc"
      unitRef="usd">-117000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzgtMi0xLTEtMjEzNTM_64dad440-13a1-42fb-9518-c8ae57e7eda7"
      unitRef="usd">11000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzgtNC0xLTEtMjEzNTM_032c83dc-199b-4b2e-a763-3d676425b795"
      unitRef="usd">11000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzktMi0xLTEtMjEzNTM_411fbd68-7917-41ce-b63a-006d0d91cc28"
      unitRef="usd">148000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzktNC0xLTEtMjEzNTM_4ae964d0-898d-415e-92a6-d98365e50771"
      unitRef="usd">-106000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzEwLTItMS0xLTIxMzUz_c4b9b810-10ef-4c21-8835-0d4986d69f5d"
      unitRef="usd">175000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTozMWQ3YmRhODk3OGI0MThlYTE2ZGVmN2Q4MWU4Nzk0Yi90YWJsZXJhbmdlOjMxZDdiZGE4OTc4YjQxOGVhMTZkZWY3ZDgxZTg3OTRiXzEwLTQtMS0xLTIxMzUz_f986a65a-6d50-488a-af2b-8e4eb2350795"
      unitRef="usd">-79000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzMzNTI_6f3a2610-56b8-46da-be7a-1028d64de910">&lt;div style="margin-top:12pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The effective tax rate of our provision for income taxes differs from the federal statutory rate as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="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:69.660%"/&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:12.496%"/&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:12.498%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;Years Ended December 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 #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Federal statutory tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(21.0)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(21.0)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;State income taxes, net of federal tax benefits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(3.8)&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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(3.9)&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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Research and development tax credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1.2)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(0.5)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Stock compensation&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.9&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1.0&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Non-deductible expenses&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1.1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;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:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Change in valuation allowance&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;24.6&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;22.6&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.2&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Effective tax rate&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-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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;0.6&#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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&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-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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(0.5)&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;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzItMi0xLTEtMjEzNTM_67af3451-6500-487e-b744-f804278e6ac1"
      unitRef="number">0.210</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzItNC0xLTEtMjEzNTM_d7402a2f-0710-42c4-8a8b-6a00abbb78dc"
      unitRef="number">0.210</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzMtMi0xLTEtMjEzNTM_fa8be5d9-f4f5-41e2-8221-20f92e3a18f8"
      unitRef="number">0.038</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzMtNC0xLTEtMjEzNTM_19c635d9-24f1-44f1-a3d1-1a6f6a510fe5"
      unitRef="number">0.039</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzQtMi0xLTEtMjk4MDY_91d8a90a-3950-41f5-9c10-3a410f8488a1"
      unitRef="number">0.012</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzQtNC0xLTEtMjk4MDY_49faa6b7-603f-4d0d-9834-e411fd3f1a32"
      unitRef="number">0.005</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzUtMi0xLTEtMjk4MDY_8dd6f98f-5198-471b-a6bd-2fa635f15099"
      unitRef="number">-0.009</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzUtNC0xLTEtMjk4MDY_bef41e81-a44d-4d00-83b9-f1b76493328a"
      unitRef="number">-0.010</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzYtMi0xLTEtMjk4MDY_acf2467b-5f14-46df-b9f8-422d00aa0943"
      unitRef="number">-0.011</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzYtNC0xLTEtMjk4MDY_0dd18b53-bf05-4de1-83b6-3e0e81c4d491"
      unitRef="number">-0.011</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseOther>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzUtMi0xLTEtMjEzNTM_944d6517-fc55-42d6-9f07-5089b0f49917"
      unitRef="number">-0.246</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzUtNC0xLTEtMjEzNTM_aa1af380-6893-4602-8683-4d2bb3e4dc01"
      unitRef="number">-0.226</us-gaap:EffectiveIncomeTaxRateReconciliationChangeInDeferredTaxAssetsValuationAllowance>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzctMi0xLTEtMjEzNTM_722a8f63-6057-4aad-a3e2-df66a154406b"
      unitRef="number">0</us-gaap:EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzctNC0xLTEtMjEzNTM_9948d067-97f1-44fc-a56a-ea6e85ceae38"
      unitRef="number">-0.002</us-gaap:EffectiveIncomeTaxRateReconciliationOtherReconcilingItemsPercent>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzgtMi0xLTEtMjEzNTM_ad89898c-8800-4c92-838e-8b63356e9682"
      unitRef="number">-0.006</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkMzA3NjI3YWFmZjA0YjQ0YmQxNzMxYjhhODhlMmQyMS90YWJsZXJhbmdlOmQzMDc2MjdhYWZmMDRiNDRiZDE3MzFiOGE4OGUyZDIxXzgtNC0xLTEtMjEzNTM_ef049008-38fd-4c3f-80b8-4563bd124c50"
      unitRef="number">0.005</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzMzNTM_5701110c-1d4d-4f75-b107-a4af4810981e">If the Company&#x2019;s judgment changes and it is determined that the Company will be able to realize these deferred tax assets, the tax benefits relating to any reversal of the valuation allowance on deferred tax assets will be accounted for as a reduction to income tax expense (in thousands).&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:65.566%"/&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:14.543%"/&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:14.545%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 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 #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;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="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Net operating loss carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;22,365&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;17,733&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Research and development tax credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,102&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;629&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Accruals, reserves and other&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,055&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;920&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Interest expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,953&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,306&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Basis differences in fixed and intangible assets&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;117&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Stock compensation&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;1,407&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;528&#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 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Total gross deferred tax assets&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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27,882&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;21,233&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Less: valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(27,158)&lt;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(20,596)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Deferred tax assets, net&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 #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;724&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;637&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top: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="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Financing and acquisition-related liabilities&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(335)&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(336)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Indefinite lived assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(521)&lt;/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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(459)&lt;/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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Basis differences in fixed and intangible assets&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(175)&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:'Arial',sans-serif;font-size:8pt;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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Deferred tax liabilities, net&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(1,031)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(795)&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="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Net deferred tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(307)&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;(158)&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:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzMtMi0xLTEtMjEzNTM_3de363c8-1f51-48c9-b0a5-a6a6758df29b"
      unitRef="usd">22365000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzMtNC0xLTEtMjEzNTM_c9430344-c03f-4500-87d2-9d79ff26f4d5"
      unitRef="usd">17733000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzQtMi0xLTEtMjEzNTM_577ab667-c317-4d94-8def-f641fe4fd9d3"
      unitRef="usd">1102000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzQtNC0xLTEtMjEzNTM_07c4cfb7-2c8c-4d62-868a-c12e73b9cdc5"
      unitRef="usd">629000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwardsResearch>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLossReserves
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzUtMi0xLTEtMjEzNTM_072740b6-a465-4f5d-aa72-1c88db2f005f"
      unitRef="usd">1055000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLossReserves>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLossReserves
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzUtNC0xLTEtMjEzNTM_13d7bc62-f4e5-4b66-bb14-e4998ac5e36c"
      unitRef="usd">920000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccrualsLossReserves>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzYtMi0xLTEtMjEzNTM_bd37b3b3-61c9-4d16-ba8e-366b5ebf869c"
      unitRef="usd">1953000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzYtNC0xLTEtMjEzNTM_e7c3bdd2-b7f8-41c1-a1b3-639752e8d43b"
      unitRef="usd">1306000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzctMi0xLTEtMjEzNTM_5dafd580-2831-4f74-8f38-1249fc65f01f"
      unitRef="usd">0</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzctNC0xLTEtMjEzNTM_64dde5b2-53cc-4235-a9a7-6b77fd5c5a12"
      unitRef="usd">117000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzgtMi0xLTEtMjk4NjU_9e692209-a2ab-4ae9-a08d-fa7b173621e9"
      unitRef="usd">1407000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzgtNC0xLTEtMjk4NjU_ac3eaca1-bb5d-41ec-87a8-d4d8e9fac8a3"
      unitRef="usd">528000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzgtMi0xLTEtMjEzNTM_f6cff9fb-7aa3-435c-8d01-b702cfd63b7a"
      unitRef="usd">27882000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzgtNC0xLTEtMjEzNTM_0f09edc9-88dc-4286-a1c9-937233b4c1aa"
      unitRef="usd">21233000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzktMi0xLTEtMjEzNTM_9b7fca3c-2a55-414d-a9b2-991662edb60a"
      unitRef="usd">27158000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzktNC0xLTEtMjEzNTM_ca52cf11-cd86-4cae-a721-1d190667217c"
      unitRef="usd">20596000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzEwLTItMS0xLTIxMzUz_e9af6988-1e26-4b15-b22e-b6a752e53190"
      unitRef="usd">724000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzEwLTQtMS0xLTIxMzUz_1d0a32ae-91d1-420b-bf4d-db9982abe552"
      unitRef="usd">637000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxLiabilitiesFinancingArrangements
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzEyLTItMS0xLTIxMzUz_22ec700b-3d7f-4222-a1c8-758ea9c3ae51"
      unitRef="usd">335000</us-gaap:DeferredTaxLiabilitiesFinancingArrangements>
    <us-gaap:DeferredTaxLiabilitiesFinancingArrangements
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzEyLTQtMS0xLTIxMzUz_7890597f-5f21-4b67-a019-1c2ca3886473"
      unitRef="usd">336000</us-gaap:DeferredTaxLiabilitiesFinancingArrangements>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzEzLTItMS0xLTIxMzUz_f0366c95-7208-4eaf-8cca-17c514c14aaf"
      unitRef="usd">521000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzEzLTQtMS0xLTIxMzUz_98797742-357b-4a06-acc2-625c999d1bb1"
      unitRef="usd">459000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <exdx:DeferredTaxLiabilitiesFixedAssetsAndIntangibleAssets
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzE1LTItMS0xLTI5ODcy_958dd3bc-a8fe-4789-b9d9-b47c7f92f0bd"
      unitRef="usd">175000</exdx:DeferredTaxLiabilitiesFixedAssetsAndIntangibleAssets>
    <exdx:DeferredTaxLiabilitiesFixedAssetsAndIntangibleAssets
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzE1LTQtMS0xLTI5ODcy_f25a57a1-8d4e-418a-bdbc-4b161a5b6bea"
      unitRef="usd">0</exdx:DeferredTaxLiabilitiesFixedAssetsAndIntangibleAssets>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzE0LTItMS0xLTIxMzUz_da02db46-e82e-4f4f-9d90-84e974344850"
      unitRef="usd">1031000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzE0LTQtMS0xLTIxMzUz_fc6900e1-2a19-4cd7-8bff-7a80bd2355f3"
      unitRef="usd">795000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzE1LTItMS0xLTIxMzUz_d3dbcc20-7952-4154-9f38-e01fdf96b3e3"
      unitRef="usd">307000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTpkY2FjMDZhM2U1ZmE0YTkzODM2ZjczNGVhM2I1YjkyZC90YWJsZXJhbmdlOmRjYWMwNmEzZTVmYTRhOTM4MzZmNzM0ZWEzYjViOTJkXzE1LTQtMS0xLTIxMzUz_c5fdc6e9-e9c9-42fd-85e5-a9840197b665"
      unitRef="usd">158000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:SummaryOfValuationAllowanceTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzMzNTQ_5fe92105-fa4f-480a-9d61-ee198978cbd5">&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Changes in the valuation allowance for deferred tax assets during the years ended December&#160;31, 2021 and 2020, which related primarily to increases in net operating loss (NOL) carryforwards, accrued revenue and accruals and reserves were as follows (in thousands):&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:65.566%"/&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:14.543%"/&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:14.545%"/&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;December 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 #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2021&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:'Arial',sans-serif;font-size:8pt;font-weight:700;line-height:100%"&gt;2020&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Valuation allowance at the beginning of the year&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;20,596&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;16,797&#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="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Decreases recorded as benefits to income tax provision&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Increases recorded to income tax provision&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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;6,562&#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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;3,799&#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:bottom"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;Valuation allowance at the end of the year&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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;27,158&#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:'Arial',sans-serif;font-size:8pt;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:'Arial',sans-serif;font-size:8pt;font-weight:400;line-height:100%"&gt;20,596&#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:SummaryOfValuationAllowanceTextBlock>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTo1NjkxMDZhNzk5ZmU0NTg1YTc0YzA4NTBmNzAwNTVkYS90YWJsZXJhbmdlOjU2OTEwNmE3OTlmZTQ1ODVhNzRjMDg1MGY3MDA1NWRhXzItMi0xLTEtMjEzNTM_61b6ffe3-e620-4505-9ed8-63a1a0bbfa1d"
      unitRef="usd">20596000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i680f3acf8e474816aff7b5a834f833af_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTo1NjkxMDZhNzk5ZmU0NTg1YTc0YzA4NTBmNzAwNTVkYS90YWJsZXJhbmdlOjU2OTEwNmE3OTlmZTQ1ODVhNzRjMDg1MGY3MDA1NWRhXzItNC0xLTEtMjEzNTM_2810dca1-9c92-4979-8931-43e1c714b8b3"
      unitRef="usd">16797000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <exdx:ValuationAllowanceDeferredTaxAssetDecreaseRecordedAsABenefitToIncomeTaxProvisionAmount
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTo1NjkxMDZhNzk5ZmU0NTg1YTc0YzA4NTBmNzAwNTVkYS90YWJsZXJhbmdlOjU2OTEwNmE3OTlmZTQ1ODVhNzRjMDg1MGY3MDA1NWRhXzMtMi0xLTEtMjEzNTM_9e5be14f-c982-493c-aa8f-c1ae4735c366"
      unitRef="usd">0</exdx:ValuationAllowanceDeferredTaxAssetDecreaseRecordedAsABenefitToIncomeTaxProvisionAmount>
    <exdx:ValuationAllowanceDeferredTaxAssetDecreaseRecordedAsABenefitToIncomeTaxProvisionAmount
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTo1NjkxMDZhNzk5ZmU0NTg1YTc0YzA4NTBmNzAwNTVkYS90YWJsZXJhbmdlOjU2OTEwNmE3OTlmZTQ1ODVhNzRjMDg1MGY3MDA1NWRhXzMtNC0xLTEtMjEzNTM_e706ba81-743a-4d6c-99da-31e33ad4f2cf"
      unitRef="usd">0</exdx:ValuationAllowanceDeferredTaxAssetDecreaseRecordedAsABenefitToIncomeTaxProvisionAmount>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTo1NjkxMDZhNzk5ZmU0NTg1YTc0YzA4NTBmNzAwNTVkYS90YWJsZXJhbmdlOjU2OTEwNmE3OTlmZTQ1ODVhNzRjMDg1MGY3MDA1NWRhXzQtMi0xLTEtMjEzNTM_558f3cc7-89be-42f8-b5d6-cfcb97184d49"
      unitRef="usd">6562000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTo1NjkxMDZhNzk5ZmU0NTg1YTc0YzA4NTBmNzAwNTVkYS90YWJsZXJhbmdlOjU2OTEwNmE3OTlmZTQ1ODVhNzRjMDg1MGY3MDA1NWRhXzQtNC0xLTEtMjEzNTM_8de8a352-4713-456e-8c31-0d736cb513d6"
      unitRef="usd">3799000</us-gaap:ValuationAllowanceDeferredTaxAssetChangeInAmount>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTo1NjkxMDZhNzk5ZmU0NTg1YTc0YzA4NTBmNzAwNTVkYS90YWJsZXJhbmdlOjU2OTEwNmE3OTlmZTQ1ODVhNzRjMDg1MGY3MDA1NWRhXzUtMi0xLTEtMjEzNTM_1e998a68-568d-41d9-8d90-cda865df4b15"
      unitRef="usd">27158000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90YWJsZTo1NjkxMDZhNzk5ZmU0NTg1YTc0YzA4NTBmNzAwNTVkYS90YWJsZXJhbmdlOjU2OTEwNmE3OTlmZTQ1ODVhNzRjMDg1MGY3MDA1NWRhXzUtNC0xLTEtMjEzNTM_49004d89-3473-46ea-b2cc-13290c5d91db"
      unitRef="usd">20596000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzEwOTI_2bfa972d-ad9d-48a4-9049-f9346970e42e"
      unitRef="usd">89400000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzExMDc_14f7cbcd-648b-4adc-a2e2-e678ed0725cd"
      unitRef="usd">70600000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsDomestic>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzEyMDc_51d6eb50-a11a-489d-83db-cebc97cca19f"
      unitRef="usd">61000000.0</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzEyMjI_7fdccfed-8115-4db3-81db-40257d56e86a"
      unitRef="usd">48900000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsStateAndLocal>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzEyNjI_4f3466a0-dc25-46ee-a97b-6d326e644448"
      unitRef="usd">43500000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsSubjectToExpiration>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzE0NTQ_463e76cb-e7f5-4beb-9ed3-6e04c416fcf0"
      unitRef="usd">45900000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwardsNotSubjectToExpiration>
    <exdx:OperatingLossCarryforwardsNotUtilized
      contextRef="i680f3acf8e474816aff7b5a834f833af_I20191231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzE5NzU_f6edda7b-22df-4c89-96aa-ad05a7cf556d"
      unitRef="usd">61800000</exdx:OperatingLossCarryforwardsNotUtilized>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzMxOTI_4fe130fd-dd0f-46d9-8d21-a45840aa88c1"
      unitRef="usd">0</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNDgvZnJhZzo1MjhjOTQyN2ViNzg0MTYxODQ4ZTY3MTM0OTA0Y2Q0MC90ZXh0cmVnaW9uOjUyOGM5NDI3ZWI3ODQxNjE4NDhlNjcxMzQ5MDRjZDQwXzMxOTI_e667f11a-9dfd-4609-a982-1499c1730c6d"
      unitRef="usd">0</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNTQvZnJhZzpkNzI0ZmIxNTI4NWM0MzRiYTAyZmEyMmM1NjZjNTliOC90ZXh0cmVnaW9uOmQ3MjRmYjE1Mjg1YzQzNGJhMDJmYTIyYzU2NmM1OWI4XzU0MA_2dee9c64-6b1e-42b9-a88b-a43d54d2a72b">401(k) PlanThe Company sponsors an employee savings plan that qualifies as a deferred salary arrangement under Section 401(k) of the Code. Participating employees may defer up to the Internal Revenue Service annual contribution limit. Additionally, the Company may elect to make contributions into the savings plan at its sole discretion. For each of the years ended December&#160;31, 2021 and 2020, the Company made contributions to the Plan at 3% of qualified employee compensation, which totaled approximately $0.5 million. Effective January 1, 2022, the Company will make contributions to the Plan at 4% of qualified employee compensation.</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNTQvZnJhZzpkNzI0ZmIxNTI4NWM0MzRiYTAyZmEyMmM1NjZjNTliOC90ZXh0cmVnaW9uOmQ3MjRmYjE1Mjg1YzQzNGJhMDJmYTIyYzU2NmM1OWI4XzQzMw_7b8c8d21-d195-498a-a30c-e792fe545c4e"
      unitRef="number">0.03</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNTQvZnJhZzpkNzI0ZmIxNTI4NWM0MzRiYTAyZmEyMmM1NjZjNTliOC90ZXh0cmVnaW9uOmQ3MjRmYjE1Mjg1YzQzNGJhMDJmYTIyYzU2NmM1OWI4XzQzMw_dc815c45-d7e1-46e7-ad35-4e977b86b4db"
      unitRef="number">0.03</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNTQvZnJhZzpkNzI0ZmIxNTI4NWM0MzRiYTAyZmEyMmM1NjZjNTliOC90ZXh0cmVnaW9uOmQ3MjRmYjE1Mjg1YzQzNGJhMDJmYTIyYzU2NmM1OWI4XzUwMA_135e4df0-3b64-4b49-a3ac-83db36f24446"
      unitRef="usd">500000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanCostRecognized
      contextRef="i8edbb555118840b58059eef14558ce92_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNTQvZnJhZzpkNzI0ZmIxNTI4NWM0MzRiYTAyZmEyMmM1NjZjNTliOC90ZXh0cmVnaW9uOmQ3MjRmYjE1Mjg1YzQzNGJhMDJmYTIyYzU2NmM1OWI4XzUwMA_4baa7471-4e9a-4a48-9957-d9504fed01ab"
      unitRef="usd">500000</us-gaap:DefinedContributionPlanCostRecognized>
    <us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent
      contextRef="if18ebc8c76b74d3f9c1691fb6f2f7622_D20220101-20220101"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNTQvZnJhZzpkNzI0ZmIxNTI4NWM0MzRiYTAyZmEyMmM1NjZjNTliOC90ZXh0cmVnaW9uOmQ3MjRmYjE1Mjg1YzQzNGJhMDJmYTIyYzU2NmM1OWI4XzEwOTk1MTE2Mjg0MDU_3a2d597f-a992-417a-b510-219b22026d51"
      unitRef="number">0.04</us-gaap:DefinedContributionPlanEmployerMatchingContributionPercent>
    <exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActDisclosureTextBlock
      contextRef="i9e8bc3ec57874e1bad9fc5fe58076ef2_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNTcvZnJhZzpmMzJmNzM3NTMxYTE0NGJiOWMzOTUyMjY3NDhhNzcwMC90ZXh0cmVnaW9uOmYzMmY3Mzc1MzFhMTQ0YmI5YzM5NTIyNjc0OGE3NzAwXzM3NjY_88a9527c-3ee4-4086-a816-36b864c8bb7a">COVID-19&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;During 2020, due to the worldwide COVID-19 pandemic, the Company experienced a reduction in patient test volumes, delays in patient enrollment in ongoing and planned clinical studies, and delays in the procurement of its testing supplies. In response to the pandemic, the Company has curtailed non-essential employee travel, equipped employees with the ability to work remotely with the exception of clinical laboratory employees, and reduced marketing spend and employee headcount. The full extent to which the COVID-19 pandemic will directly or indirectly continue to impact the Company's business, results of operations and financial condition, will depend on future developments that are highly uncertain, including as a result of new information that may emerge concerning COVID-19 and the actions taken to contain or treat COVID-19, including, the success of ongoing vaccination efforts, the emergence and prevalence of variant strains of COVID-19, the institution or reinstitution of shutdowns, "stay-at-home-orders" and other public health measures as well as the related economic impact of these matters on local, regional and international markets.   &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On March 27, 2020, the CARES Act was enacted in response to the COVID-19 pandemic. The CARES Act, among other things, permits NOL carryovers and carrybacks to offset 100% of taxable income for taxable years beginning before 2021. The CARES Act did not have a material impact on the Company's effective tax rate or income tax provision for the year ended December 31, 2020. Under the Tax Cuts and Jobs Act (TCJA), NOLs generated post TCJA were allowed to be carried forward indefinitely but were only allowed to offset 80% of taxable income. As a result of the CARES Act and the change to permit NOLs generated in taxable years 2018, 2019 and 2020 to offset 100% of taxable income, the Company released valuation allowance against its deferred tax assets in the amount of $0.1 million. The release of valuation allowance resulted in a discrete tax benefit of $0.1 million for the year ended December 31, 2020. As of the year ended December&#160;31, 2021, some tax benefits under the CARES Act have expired including the ability to use certain NOLs to offset 100% of taxable income. Accordingly, the Company increased its valuation allowance that resulted in a tax expense of $0.1 million for the year ended December&#160;31, 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In April 2020, the Company received $0.7 million of funding under the CARES Act Provider Relief Fund, subject to the Company's agreement to comply with the Department of Health &amp;amp; Human Services' (HHS) standard terms and conditions. The CARES Act Provider Relief Fund is a federal fund allocated for general distributions to Medicare facilities and providers impacted by the COVID-19 pandemic and is intended to support COVID-related expenses or lost revenue attributable to COVID-19. The funding received is considered a government grant which is recognized when there is reasonable assurance that the grant will be received and that conditions attached to the grant have been met. The Company accepted the terms and conditions of the grant in May 2020. For the year ended December 31, 2020, the Company recognized $0.7 million due to lost revenue attributable to COVID-19, which is reflected in other income, net, on its statements of operations and as an operating activity in the statement of cash flows.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On April 16, 2020, the Company entered into a promissory note (the Note) with BOKF, NA dba Bank of Oklahoma (BofO), the lender, evidencing an unsecured loan pursuant to the U.S. Small Business Administration (SBA) Paycheck Protection Program (PPP) of the CARES Act of approximately $2.9 million (the PPP Loan). The Company applied for and received the PPP Loan pursuant to the then published PPP qualification and certification requirements. On April 23, 2020, the SBA, in consultation with the Department of Treasury, issued new guidance that created uncertainty regarding the qualification requirements for the PPP Loan (the New Guidance). In light of the New Guidance, on May 11, 2020, the Company paid off in full the principal and interest on the PPP Loan, resulting in the termination of the Note. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Arial',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On December 27, 2020, the Consolidated Appropriations Act, 2021 was signed into law. It provides additional COVID-19 focused relief and extends certain provisions of the CARES Act. The Consolidated Appropriations Act, 2021 did not have a material impact on the Company's financial statements.&lt;/span&gt;&lt;/div&gt;</exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActDisclosureTextBlock>
    <exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActDeferredTaxAssetsValuationAllowanceIncomeTaxExpenseBenefit
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNTcvZnJhZzpmMzJmNzM3NTMxYTE0NGJiOWMzOTUyMjY3NDhhNzcwMC90ZXh0cmVnaW9uOmYzMmY3Mzc1MzFhMTQ0YmI5YzM5NTIyNjc0OGE3NzAwXzE3NTc_e15a727c-cdcb-48bd-aed1-50d1a1a54394"
      unitRef="usd">-100000</exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActDeferredTaxAssetsValuationAllowanceIncomeTaxExpenseBenefit>
    <exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActDeferredTaxAssetsValuationAllowanceIncomeTaxExpenseBenefit
      contextRef="i858168a2e3494c15ae78f165b53aa373_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNTcvZnJhZzpmMzJmNzM3NTMxYTE0NGJiOWMzOTUyMjY3NDhhNzcwMC90ZXh0cmVnaW9uOmYzMmY3Mzc1MzFhMTQ0YmI5YzM5NTIyNjc0OGE3NzAwXzEwOTk1MTE2MzIyMjA_e15a727c-cdcb-48bd-aed1-50d1a1a54394"
      unitRef="usd">-100000</exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActDeferredTaxAssetsValuationAllowanceIncomeTaxExpenseBenefit>
    <exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActDeferredTaxAssetsValuationAllowanceIncomeTaxExpenseBenefit
      contextRef="i5e2826961cb54ec09ddf475ab8870832_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNTcvZnJhZzpmMzJmNzM3NTMxYTE0NGJiOWMzOTUyMjY3NDhhNzcwMC90ZXh0cmVnaW9uOmYzMmY3Mzc1MzFhMTQ0YmI5YzM5NTIyNjc0OGE3NzAwXzEwOTk1MTE2MzM3Nzg_41ee7f61-0933-49ff-8749-cf9288641ece"
      unitRef="usd">100000</exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActDeferredTaxAssetsValuationAllowanceIncomeTaxExpenseBenefit>
    <exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActProceedsFromLoan
      contextRef="ib97a43d8fd644b68ad6b548b7d06907b_D20200401-20200430"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNTcvZnJhZzpmMzJmNzM3NTMxYTE0NGJiOWMzOTUyMjY3NDhhNzcwMC90ZXh0cmVnaW9uOmYzMmY3Mzc1MzFhMTQ0YmI5YzM5NTIyNjc0OGE3NzAwXzIxNTA_a5ba5ddd-cc6f-4ded-addc-e242ee697fc4"
      unitRef="usd">700000</exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActProceedsFromLoan>
    <exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActProceedsFromLoan
      contextRef="ib97a43d8fd644b68ad6b548b7d06907b_D20200401-20200430"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNTcvZnJhZzpmMzJmNzM3NTMxYTE0NGJiOWMzOTUyMjY3NDhhNzcwMC90ZXh0cmVnaW9uOmYzMmY3Mzc1MzFhMTQ0YmI5YzM5NTIyNjc0OGE3NzAwXzEwOTk1MTE2MzI5Nzc_a5ba5ddd-cc6f-4ded-addc-e242ee697fc4"
      unitRef="usd">700000</exdx:CoronavirusAidReliefAndEconomicSecuritiesCARESActProceedsFromLoan>
    <us-gaap:ProceedsFromBankDebt
      contextRef="iddfc9c29c10b46cbae6c40ddefd0b86a_D20200416-20200416"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOmQzMzdiYjA4MmNhZjQ3ZmVhMjlhNTE3N2M1NzE3ZjkyL3NlYzpkMzM3YmIwODJjYWY0N2ZlYTI5YTUxNzdjNTcxN2Y5Ml8xNTcvZnJhZzpmMzJmNzM3NTMxYTE0NGJiOWMzOTUyMjY3NDhhNzcwMC90ZXh0cmVnaW9uOmYzMmY3Mzc1MzFhMTQ0YmI5YzM5NTIyNjc0OGE3NzAwXzMyMzU_080b396f-2cf1-410a-8d24-570ed1d6c65a"
      unitRef="usd">2900000</us-gaap:ProceedsFromBankDebt>
</xbrl>
