<?xml version="1.0" encoding="utf-8"?>
<xbrl
  xml:lang="en-US"
  xmlns="http://www.xbrl.org/2003/instance"
  xmlns:country="http://xbrl.sec.gov/country/2022"
  xmlns:dei="http://xbrl.sec.gov/dei/2022"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:pubm="http://pubmatic.com/20221231"
  xmlns:srt="http://fasb.org/srt/2022"
  xmlns:us-gaap="http://fasb.org/us-gaap/2022"
  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="pubm-20221231.xsd" xlink:type="simple"/>
    <context id="id988dc59601041f4b68c177d299c3941_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i61a9e3107d254efcafe0ab1fe23305d6_I20220630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <instant>2022-06-30</instant>
        </period>
    </context>
    <context id="i80d335a05de54d98a740afc4ee3dcdc4_I20230224">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-02-24</instant>
        </period>
    </context>
    <context id="i41d26801ef72406182c641384ebf660a_I20230224">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-02-24</instant>
        </period>
    </context>
    <context id="ica476a33b5a7433ba580f12a6b446625_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ief97a1c2b2da449b96f8636f985476f4_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ifa9796e50d594b00a80a484c70c8d554_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ifd7e5ffaadbf4ae98099c49fe01d4f34_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i173af4e1ac634c5cafc46d424c48a9f1_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="icb9ce0090f0442a0b93e963f07695aa3_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ie73ef48226804275a103058a20e02f26_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i5f7b1e5bbc254c0fa3fda188fd1e56fb_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">pubm:RedeemableCommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="ic08e732f97184fadb1698f78b6b396cb_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="ida5333970f1d46a4aaa7f05ca12496bf_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i344a039b6ec24877a15544f032b7263d_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i0989b9c7ec4d4d0b9be899c8141d4ce7_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="if56a0c66503d41879b927e1eadad7085_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i4d92a3b2acb54d89ae14c1fdee13f997_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="ic9ffd66a17b84f778a2ac2f939320157_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="ifa58dc389b4b42628c504b326e7b6d9c_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="ib2b6905eaebc457ab15ce9f2048fdbda_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ic88389f7694140588ef3661018660843_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">pubm:RedeemableCommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i42260beb5b884908a6d12162f2d055c4_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="iec3280b2460d448889759f7fd78344e5_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="iaf3ef5172ad041f9955a67bd9618ff40_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i810032e96192423a8d32bca113891c1e_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i2af87c514f934444b28bad275d6e62bb_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">pubm:RedeemableCommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="idbbbf0d3fbd2476c9efa28ba6769ee47_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i9fb615ff0be9448bbdb4df74e8dd8520_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i530e9379a3ab4bc7b55228049fb528b7_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="if73a64c8512641499a2ff5b7022dedc0_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i2a8ec09ff5194aecbac1b6371c187c7b_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i934d8482f1874c40a6c76eb2128d33d0_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ice12c21b3183407d8d961304281d2b2e_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i408be0a9863349e4865c79639462d631_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="ie014e4a2c4014b0dae2747f7bd74a7f5_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i8c69851eccea4e009f98b003e2d22273_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i78eefb2767414464b28694efd4da2332_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="ib6dffc4f4c064cd8ba8f93428d27b503_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i0192a2bdd18b498c8dc73aaacaa376b0_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">pubm:RedeemableCommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ida2a90b6d0b3494dbe2bd105b3adf042_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i3bf48b06444545329ef81a9fd305df27_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i30d38c949d354a21809107458a906479_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="ib182d0ac080243b3a0c53bcc11554237_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i0262a55ed0064d50b4c8c5c4e463e4cd_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i22652937f3a44ab0b8fc6cfc8aa4c095_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i6b27a7aa0f3e49be9a6fef02e6977a12_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i50790c54193a49bb8ac7df8d6d4cf4e5_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i92667a35f7f14b08a2f9d265383d877a_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ie9471410f4ce4e7e94d5c43d7ad2f93d_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="if22b21458e63480d9c747473d6c51e1f_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">pubm:RedeemableCommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i86477079460742429112950b4be6c267_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:CommonStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i2fb4567bd8c4462580e39f6947856198_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:TreasuryStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ia2d475c516f54ba5861ed34e0e6aeed0_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AdditionalPaidInCapitalMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="if84681bcb2bb47008d33348309af90c9_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:AccumulatedOtherComprehensiveIncomeMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i60c67658a0854d22905d7d06967271bf_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementEquityComponentsAxis">us-gaap:RetainedEarningsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i63d909af0d34461f83faa57f88b44fe5_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:SoftwareDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ic79c56dcd3be488092371b2754077455_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:SoftwareDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i35ea74bd5df0428091e6c7419e9e9b7e_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">pubm:OnePublisherMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i1ed42fce6aa34cf18b55da78d539a6f4_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">pubm:OnePublisherMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i646a822112c54853b1ca5662c2acab6f_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">pubm:OnePublisherMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i0907b108df8d4060b483a95efef44373_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">pubm:BuyerOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i0734c015b9de464abaedd29930b6275d_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">pubm:BuyerTwoMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ib761c16c18864a639816892a11314e3d_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">pubm:BuyerThreeMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i9a93751ca5a74f22b987dbb0ad444f14_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">pubm:BuyerOneMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i26c974d99caf4a2abd381ff10a6ab5c3_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">pubm:BuyerTwoMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByBenchmarkAxis">us-gaap:AccountsReceivableMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:ConcentrationRiskByTypeAxis">us-gaap:CustomerConcentrationRiskMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ib8e74d7fda6442ac9ad473c808dd6072_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i7e1d1c72c0a949809d2ea748e6832520_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ifd5960857bca456ab43c8b0a74aa3fde_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i4aad609eb43641e384a1430e1814a856_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i283cdc0d7472453891144fab41ecb1f1_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i01e58e661485480598a1358c3bd0fe7b_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i58ca4231a09d48cdb579547d9432493e_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ic1e960324b37402caf918c1a06bde43c_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i978e7f2c62f54c45b8c3ce028aff8582_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i87fc99ed1c7a4b2995e5e984dda08655_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i77e420cc1d934fbdb701fa897682a0d1_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ia14f4e24f62c48fea64bb32e4ed9a2b2_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i6b55513816654ae7802d6096ea48c201_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:CommercialPaperMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ia21d26b0fd6742349c4409c760034bbf_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:CommercialPaperMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ie812bb410cd04d4fbd711c0532339582_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:CommercialPaperMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i32fc715e072141129939facdfb0e880c_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CommercialPaperMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i911c61adec844fa98563f658448ea46f_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:USGovernmentAgenciesDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i4d3aa3988dcc471fb8bc0275ce896f6d_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:USGovernmentAgenciesDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ia03c939a3d874674a55a53e442c088da_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:USGovernmentAgenciesDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="iedbf4cc2da634e99915c9c391a51e808_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentAgenciesDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="id9423e4ffcfc44558ef85f73a1450161_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i133dbe1fe1cd4d11ab8872f8e5ecae30_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ibeea57b62d7447ec95fbd12c33fabaa3_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i8b7adc71c2934182b4d4c0ee186a71b1_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i9e136be465c0412f930b8cbe8f51449d_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i8dea28ef5fbb42a69b6b85aa38f268fb_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ibab8f7f9f1bc483ab93d737c789a584a_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i09d097eecf4f4146a646aed546d8d864_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i0774a6a7165348fe8fd2782c2acbf83f_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ie25c596426a44569b1af338aa53b6e31_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i0bfb3e7a11f441c7ac001aa542558c9c_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i38d9e8b2e8534fd4a0b7445a542e8f5d_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:MoneyMarketFundsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ia887bf90659849b1a01291297d4d006e_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i473140a5c93f45e09c6f0961a257c9e1_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i3219e8a9a8cf4950a44a839d1d5a2e68_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i6213064349be471a84d95456ff450c09_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CertificatesOfDepositMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i3e922eb57fef4e92a583e250fd1c11a8_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i3d6c9cdfc7294b0392787dd5d7dcb57e_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i89159fd4fa554972aafb683990a8427c_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i2a13a54760b24223b7abdcb6ea6346cc_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CashEquivalentsMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i2df4ef2620544de7b260889e393b8ff5_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:CommercialPaperMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i4deaa6e7bb2a48e49db0db483642c85d_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:CommercialPaperMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i2bb517d99b204484a15a64dd7259bdee_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:CommercialPaperMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i47b14f0c7801492381a936da1ac8dafc_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CommercialPaperMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i8bb5edf7d89b463a941f75f6a10cd8af_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i155283393d1046c585d845643901a079_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i0dd9596562f544c09602e608d3bbbcad_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i54f7102ab9a34571b28842f0acddad84_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i45178847e69f46e9844fecd4567b8132_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel1Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i95446d62c9b543188f6abff98b269ddb_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel2Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i5fb436fe3e2441b2b7f2c71eba2c7842_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByFairValueHierarchyLevelAxis">us-gaap:FairValueInputsLevel3Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i3b7dd77ba365409688d0accbc6a87e68_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i600b33ed8e204d22a0d8f575140e613f_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CommercialPaperMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="if2c3d083cf6d425eb414873c5717090a_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USGovernmentAgenciesDebtSecuritiesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ic434482a55e04a01a4c5e124aed490bc_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ic7fe3930bce54fc58a681b3454c4563b_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:CommercialPaperMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="iac6890358e2740e29b2b4a3913aa9e14_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FinancialInstrumentAxis">us-gaap:USTreasuryAndGovernmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="idbd83cb4097648659d7e1dbe377314e9_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:SoftwareDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ic838f55c48624b8d9af7c724ed3988e6_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:SoftwareDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i856f458689124797ae35ef3a71b29aa2_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TechnologyEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ib54ea1a7675a4af6849200444be8375d_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:TechnologyEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i8bb503f5e25241df86b02d02bd6f9dcd_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:LeaseholdImprovementsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ifdf0f6630d874dff81ec73d6a378c691_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i542526fcf5f94e62a4c380c2a6b338dc_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:FurnitureAndFixturesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i03cf1a3d82244a8e9aac4b484176b1b6_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="ic7806e8e7fda4e56bf63ea6fddc17919_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:SoftwareDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i6d7287665d6c4bcd919ea1391d926204_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:SoftwareDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i4a238b62b92840f58c40e990bde9705f_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:SoftwareDevelopmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="ie9a9804199be4a16b445db7e4b68efea_I20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">pubm:SiliconValleyBankMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-06-30</instant>
        </period>
    </context>
    <context id="if0f97c56b006401f875d8c5e8aa27aeb_D20210601-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LineOfCreditFacilityAxis">pubm:SiliconValleyBankMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-06-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i933f1f454d514a429b8fa6a6af5f88a4_I20221017">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-10-17</instant>
        </period>
    </context>
    <context id="ie48183ae3a2840b49030295d91933ee8_I20221017">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LetterOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-10-17</instant>
        </period>
    </context>
    <context id="id0cea25136334d36a932e5e946626c7d_I20221017">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">pubm:SwinglineSubFacilityMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-10-17</instant>
        </period>
    </context>
    <context id="ibbcabe4256ec42c7bef2071b836aad09_D20221017-20221017">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">us-gaap:FederalFundsEffectiveSwapRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-10-17</startDate>
            <endDate>2022-10-17</endDate>
        </period>
    </context>
    <context id="i9d02e10a3de84a78a0e5cc881ecf1dd4_D20221017-20221017">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">pubm:SecuredOvernightFinancingRateSOFRMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-10-17</startDate>
            <endDate>2022-10-17</endDate>
        </period>
    </context>
    <context id="ieeb2fdc5c92d4db0825a8e06f5ff9707_D20221017-20221017">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">pubm:SecuredOvernightFinancingRateSOFRMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-10-17</startDate>
            <endDate>2022-10-17</endDate>
        </period>
    </context>
    <context id="if174418d7c2a4f1d94934757c178f76a_D20221017-20221017">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">pubm:SecuredOvernightFinancingRateSOFRMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-10-17</startDate>
            <endDate>2022-10-17</endDate>
        </period>
    </context>
    <context id="i15947178e73f4ea29f91ee02e83cf592_D20221017-20221017">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">pubm:AlternateBaseRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-10-17</startDate>
            <endDate>2022-10-17</endDate>
        </period>
    </context>
    <context id="i26537c769f4a41febf20997923c889c6_D20221017-20221017">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:VariableRateAxis">pubm:AlternateBaseRateMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-10-17</startDate>
            <endDate>2022-10-17</endDate>
        </period>
    </context>
    <context id="i6b89b43039ac42aabd9a2e724a006e78_D20221017-20221017">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-10-17</startDate>
            <endDate>2022-10-17</endDate>
        </period>
    </context>
    <context id="ifea34ca1ee954aec9324c2403ba81768_D20221017-20221017">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:CreditFacilityAxis">us-gaap:RevolvingCreditFacilityMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:CreditAgreementMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:LineOfCreditMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-10-17</startDate>
            <endDate>2022-10-17</endDate>
        </period>
    </context>
    <context id="i5b1b1ef57eeb4e0ea87637f75385ca1f_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i81668e335aaf4d31b844154bf570f4bd_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i8fe825dd3dda4fba9849fb119b5a1698_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:PropertyPlantAndEquipmentByTypeAxis">us-gaap:OfficeEquipmentMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i96bc334fe7fa4da0bac1d4c19fe5a89b_D20220916-20220916">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">pubm:MartinMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-09-16</startDate>
            <endDate>2022-09-16</endDate>
        </period>
    </context>
    <context id="i9e9ec4b48ecd4c94b9d888afc02c0d22_D20220916-20220916">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">pubm:MartinMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:DevelopedTechnologyRightsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-09-16</startDate>
            <endDate>2022-09-16</endDate>
        </period>
    </context>
    <context id="i9e5a44ecafc44aac8d0f225ec835bf24_D20220916-20220916">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">pubm:MartinMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-09-16</startDate>
            <endDate>2022-09-16</endDate>
        </period>
    </context>
    <context id="i09ef720717ca4499975d39592d2bf84a_I20220916">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">pubm:MartinMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-09-16</instant>
        </period>
    </context>
    <context id="ic4cc6f26cee74daea71a7143534f6d93_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:BusinessAcquisitionAxis">pubm:MartinMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i5d42c5d8ad214f91804fd0c6cd7b3fc1_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ida9b43ad77b7440c8f4de3ebdc519271_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:TechnologyBasedIntangibleAssetsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i8c664b2f417947718f6c8b4d190c90c7_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ib808a479e76f42449e27c460b0deed3b_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:FiniteLivedIntangibleAssetsByMajorClassAxis">us-gaap:CustomerRelationshipsMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i7bcee892987e4daa960b94dee14edba1_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:IrrevocableLettersOfCreditDueApril2025Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i70e24ce3116648ca95d333c69dd276ba_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:IrrevocableLettersOfCreditDueJuly2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i9aa04502f9194d5eb5802305ecae32a5_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:IrrevocableLettersOfCreditDueJune2022Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i32fd8032ce434823ac13dc2f68fdca4e_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:IrrevocableLettersOfCreditDueJuly2028Member</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ibb19a59747b341a2804c222c19fcb5fe_I20201211">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-11</instant>
        </period>
    </context>
    <context id="id6abe45cb2bc43e0958b992c150fa087_I20201211">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-11</instant>
        </period>
    </context>
    <context id="ic784f4217cd447739c4b1b7d7d1b0cc6_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="id3f619358e9443e99c667e248fb606ef_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i56ade6d13ec849b2884358cf0b828f8c_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="ib5e5bde22f6141bcb7c9a03e7e65c57f_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i6b49d27921f344d491d143022650ca51_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="ica04873b926545f4944d7ddd5c93b644_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i5dab4e920a8e4922839c3418d0ca08a3_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i12b373911f8a444c9784df1b3d463e7b_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="icba9b8108da24de7a2729baf5d6397ea_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i2e69679092c34a16af88b3fdb22d73e6_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="ide158533dfbb4c2fb83d923b193e96f2_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i206a7e35498c47de92cd630bd521e036_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i0b3e787d06714102bd623e435fa5eaa3_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i754c3b6332b44bdc9563b2d160a6b13d_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i321d1d4f2e2049d5a2d80a214a6a5556_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ibe686ae6e91c45a6a6964589e191b1fc_I20201130">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-11-30</instant>
        </period>
    </context>
    <context id="i6c7276787b584687909b8d7f60727aa5_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i62bb352b614c4cd389d56ea4ba348218_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ibaeccb41f8e14f1380ecb99d9a1c7f15_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ib73c513d931b4ce98184ba59ab3f1850_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i80ac56bad5394a988897e3d23eefb4c5_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">pubm:ESPPMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i2012baed1612484a8a186fb7b6ae08c9_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">pubm:ESPPMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="icdb6b9613a2e4ab7940d210a42e40583_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MinimumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">pubm:ESPPMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ie0ae34afcf6246c98339f49a22e3402b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:RangeAxis">srt:MaximumMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">pubm:ESPPMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="id67a7f2eb41441efa7c308f57e5563d5_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">pubm:ESPPMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i768e26ee73164adbadce96334fecd700_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AwardTypeAxis">pubm:ESPPMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i64d33b80a5984b5096cb49a794116005_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:CostOfSalesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ifad20a26c66f4bd6b2bb8248da930334_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i319eb45d4a37466da51669533e66a801_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i6b00559a8b6a47a2836fc338e551da3a_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:ResearchAndDevelopmentExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i576ccb529de3411cb97f9fee0cdaf9a1_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="ibdadcf1c92614413abea3a20b30303e7_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="id282346b7688465799c3f88e518d3369_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ieb439b6e635a44d1ba1e1c2e8e5ca3cc_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i386854b9492e46fb976ced1e21e01e6e_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:SellingAndMarketingExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i5236b15ee484491db19aaa0812452ef0_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i7944cb9c9ac548cca405db219b212ce7_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i9f7a923504174f0ea52ea0c5fcb4b1b8_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeStatementLocationAxis">us-gaap:GeneralAndAdministrativeExpenseMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="if5b340c70dc6434291606ac6e28da52b_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i96c40611e43142c694360903b40d9f87_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i9d81ac8705f34af48dc4208542446337_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i680ea9f9ffbe4dfeb718fe928a45f68d_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:RestrictedStockUnitsRSUMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i178fdfe174e942e6bbd7a9e84515968b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="iff764f3e2d5f4f9fa347b83062bf7530_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="ifaf6da1190324dc4b8305cf36ac0f34b_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i1804433165a24b7495e098691315a81b_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="i9330bddf69c541a8940ad3c7529fab00_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</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="ic8033bb5d76f4819bd384b49ccfc5e9f_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:DomesticCountryMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ie3253d82f9a347f4a62283739cf2c087_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:IncomeTaxAuthorityAxis">us-gaap:StateAndLocalJurisdictionMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="icee89bae54a5454087107ef727a15a21_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:TaxCreditCarryforwardAxis">us-gaap:ResearchMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="i0d52517494f148b38a3a77008e9fd901_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i39af605510974b41b44fa68fae8b8c98_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i466808222e274062aff3df928c7c166d_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i0a676c63337340b3b0cd04b4808a020c_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="i9e85dd5d1ab24543a1ce002f19f7baa5_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="ieace7ef9fe974585b09fd9121009c8eb_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">us-gaap:EMEAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i8e47cd305e0c4d47bc6c368e9ade31d2_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ie2111f322fa24dc1ac2ddccfa4d1f763_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="icaf5377d0f2741d1ae185d70e5c0a111_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">srt:AsiaPacificMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i2394fa786d024ab9b2a4347c54ea3b5e_D20220101-20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">pubm:RestOfTheWorldMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2022-01-01</startDate>
            <endDate>2022-12-31</endDate>
        </period>
    </context>
    <context id="ib53833e478f2477f9d83971b7f585522_D20210101-20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">pubm:RestOfTheWorldMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-12-31</endDate>
        </period>
    </context>
    <context id="i1234901cec2244cb8455808a15509a73_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">pubm:RestOfTheWorldMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i1864a5ebc9d84681b315ac8c7cbc0d47_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="idd49986506f0416a83bba2f858a3a192_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i6461203608764210af9439dc4f90dcee_I20221231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">pubm:RestOfTheWorldMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2022-12-31</instant>
        </period>
    </context>
    <context id="ibc6207e396ea45ea8b6510d96ea4971a_I20211231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">pubm:RestOfTheWorldMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2021-12-31</instant>
        </period>
    </context>
    <context id="i82175258174b4f9c9cae4c66eac5fe55_I20230227">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:ShareRepurchaseProgramAxis">pubm:A2023RepurchaseProgramMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsequentEventTypeAxis">us-gaap:SubsequentEventMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2023-02-27</instant>
        </period>
    </context>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="segment">
        <measure>pubm:segment</measure>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <unit id="instrument">
        <measure>pubm:instrument</measure>
    </unit>
    <unit id="calendaryear">
        <measure>pubm:calendarYear</measure>
    </unit>
    <dei:AmendmentFlag
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl80L2ZyYWc6ZGNkOTI0OTJlMzJkNDE3ZDk5NTliYmE1NmI3Zjk4MzMvdGFibGU6NjY4YmRjMGZlODcyNDc4Mjk5NDE3M2FlZjkxZjA2ZmEvdGFibGVyYW5nZTo2NjhiZGMwZmU4NzI0NzgyOTk0MTczYWVmOTFmMDZmYV8xLTEtMS0xLTc3OTA4_24e73603-4b55-44bd-9818-26c174134037">false</dei:AmendmentFlag>
    <dei:EntityCentralIndexKey
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl80L2ZyYWc6ZGNkOTI0OTJlMzJkNDE3ZDk5NTliYmE1NmI3Zjk4MzMvdGFibGU6NjY4YmRjMGZlODcyNDc4Mjk5NDE3M2FlZjkxZjA2ZmEvdGFibGVyYW5nZTo2NjhiZGMwZmU4NzI0NzgyOTk0MTczYWVmOTFmMDZmYV8yLTEtMS0xLTc3OTA4_72bc5a74-a8b3-4492-9101-85403bd9d1d4">0001422930</dei:EntityCentralIndexKey>
    <dei:DocumentFiscalYearFocus
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl80L2ZyYWc6ZGNkOTI0OTJlMzJkNDE3ZDk5NTliYmE1NmI3Zjk4MzMvdGFibGU6NjY4YmRjMGZlODcyNDc4Mjk5NDE3M2FlZjkxZjA2ZmEvdGFibGVyYW5nZTo2NjhiZGMwZmU4NzI0NzgyOTk0MTczYWVmOTFmMDZmYV80LTEtMS0xLTc3OTA4_4cd38a9f-3b92-4dbc-8c45-ec4280e73dd6">2022</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl80L2ZyYWc6ZGNkOTI0OTJlMzJkNDE3ZDk5NTliYmE1NmI3Zjk4MzMvdGFibGU6NjY4YmRjMGZlODcyNDc4Mjk5NDE3M2FlZjkxZjA2ZmEvdGFibGVyYW5nZTo2NjhiZGMwZmU4NzI0NzgyOTk0MTczYWVmOTFmMDZmYV81LTEtMS0xLTc3OTA4_885eab2e-48cf-4603-8fe9-4fe682bf0617">FY</dei:DocumentFiscalPeriodFocus>
    <dei:EntityAddressAddressLine1
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl80L2ZyYWc6ZGNkOTI0OTJlMzJkNDE3ZDk5NTliYmE1NmI3Zjk4MzMvdGFibGU6NjY4YmRjMGZlODcyNDc4Mjk5NDE3M2FlZjkxZjA2ZmEvdGFibGVyYW5nZTo2NjhiZGMwZmU4NzI0NzgyOTk0MTczYWVmOTFmMDZmYV82LTEtMS0xLTc3OTA4_9c802aaf-d1da-4a69-bb94-78d86532d61a">601 Marshall St.</dei:EntityAddressAddressLine1>
    <dei:EntityAddressCityOrTown
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl80L2ZyYWc6ZGNkOTI0OTJlMzJkNDE3ZDk5NTliYmE1NmI3Zjk4MzMvdGFibGU6NjY4YmRjMGZlODcyNDc4Mjk5NDE3M2FlZjkxZjA2ZmEvdGFibGVyYW5nZTo2NjhiZGMwZmU4NzI0NzgyOTk0MTczYWVmOTFmMDZmYV84LTEtMS0xLTc3OTA4_3660317e-0262-420b-a30e-d39d13637274">Redwood City</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl80L2ZyYWc6ZGNkOTI0OTJlMzJkNDE3ZDk5NTliYmE1NmI3Zjk4MzMvdGFibGU6NjY4YmRjMGZlODcyNDc4Mjk5NDE3M2FlZjkxZjA2ZmEvdGFibGVyYW5nZTo2NjhiZGMwZmU4NzI0NzgyOTk0MTczYWVmOTFmMDZmYV85LTEtMS0xLTc3OTA4_ea1d76fa-91bd-41e2-a49f-80831ca2c8f3">CA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl80L2ZyYWc6ZGNkOTI0OTJlMzJkNDE3ZDk5NTliYmE1NmI3Zjk4MzMvdGFibGU6NjY4YmRjMGZlODcyNDc4Mjk5NDE3M2FlZjkxZjA2ZmEvdGFibGVyYW5nZTo2NjhiZGMwZmU4NzI0NzgyOTk0MTczYWVmOTFmMDZmYV8xMC0xLTEtMS03NzkwOA_6ef0cd48-4871-4a85-a44c-a5a2f008ab9d">94063</dei:EntityAddressPostalZipCode>
    <dei:CityAreaCode
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl80L2ZyYWc6ZGNkOTI0OTJlMzJkNDE3ZDk5NTliYmE1NmI3Zjk4MzMvdGFibGU6NjY4YmRjMGZlODcyNDc4Mjk5NDE3M2FlZjkxZjA2ZmEvdGFibGVyYW5nZTo2NjhiZGMwZmU4NzI0NzgyOTk0MTczYWVmOTFmMDZmYV8xMC0xLTEtMS05Mjg1MA_3653f1e0-5499-4c16-8aa1-8cda9495be17">650</dei:CityAreaCode>
    <dei:LocalPhoneNumber
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl80L2ZyYWc6ZGNkOTI0OTJlMzJkNDE3ZDk5NTliYmE1NmI3Zjk4MzMvdGFibGU6NjY4YmRjMGZlODcyNDc4Mjk5NDE3M2FlZjkxZjA2ZmEvdGFibGVyYW5nZTo2NjhiZGMwZmU4NzI0NzgyOTk0MTczYWVmOTFmMDZmYV8xMS0xLTEtMS05Mjg1MA_77f86e50-f0e9-4824-b470-402570dcfcc2">331-3485</dei:LocalPhoneNumber>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="i63d909af0d34461f83faa57f88b44fe5_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzc3MzM_283f5087-f90b-4252-9136-302824a2a991">P2Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzExLTAtMS0xLTc3OTA4_1e8875d2-50dc-402d-8ecb-a627de31f130">http://fasb.org/us-gaap/2022#PropertyPlantAndEquipmentNet</us-gaap:FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList>
    <us-gaap:FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzExLTAtMS0xLTc3OTA4_ae550b7a-e58b-4278-a8f5-d695a63c66fa">http://fasb.org/us-gaap/2022#PropertyPlantAndEquipmentNet</us-gaap:FinanceLeaseRightOfUseAssetStatementOfFinancialPositionExtensibleList>
    <us-gaap:FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzE1LTAtMS0xLTc3OTA4_63b1ab0a-6935-4156-999b-01f3afe01711">http://fasb.org/us-gaap/2022#Liabilities</us-gaap:FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList>
    <us-gaap:FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzE1LTAtMS0xLTc3OTA4_e2d02111-7a12-4d7c-93ba-d76ea743e2c8">http://fasb.org/us-gaap/2022#Liabilities</us-gaap:FinanceLeaseLiabilityStatementOfFinancialPositionExtensibleList>
    <dei:DocumentType
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zNTU2_b375fbaf-7022-4685-b886-744ab8e980e6">10-K</dei:DocumentType>
    <dei:DocumentAnnualReport
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zNTcx_014c5a10-438c-4c68-8b81-71846443bb96">true</dei:DocumentAnnualReport>
    <dei:DocumentPeriodEndDate
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8yMTY_72edbb3e-1622-4512-a210-527e2ef94084">2022-12-31</dei:DocumentPeriodEndDate>
    <dei:CurrentFiscalYearEndDate
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8yMTY_c9b9a9ea-cc22-4132-b3e3-0ba582a8ac4b">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentTransitionReport
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zNTU4_1016551f-249c-454e-a7e5-8fd21fb90850">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zNTcy_130ae84e-714d-48c7-9135-c90e1d1a5510">001-39748</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zNTY2_a75a853b-a2a2-48b4-aad7-71daacbe4ffb">PUBMATIC, INC.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGFibGU6NzBlMDNmYTM5YWYwNDFmNDg3Y2ZkMjkzMWYzYWZiYzcvdGFibGVyYW5nZTo3MGUwM2ZhMzlhZjA0MWY0ODdjZmQyOTMxZjNhZmJjN18wLTAtMS0xLTc3OTA4_2f87924c-4c41-43c7-886c-48c7865e9afb">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGFibGU6NzBlMDNmYTM5YWYwNDFmNDg3Y2ZkMjkzMWYzYWZiYzcvdGFibGVyYW5nZTo3MGUwM2ZhMzlhZjA0MWY0ODdjZmQyOTMxZjNhZmJjN18wLTEtMS0xLTc3OTA4_d8e46124-e7e2-492b-a4f1-481475b800d9">20-5863224</dei:EntityTaxIdentificationNumber>
    <dei:Security12bTitle
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGFibGU6ZGYxNmY0ODEzNmU3NDExNGE2MjE1MjdiOWM0M2RjMmUvdGFibGVyYW5nZTpkZjE2ZjQ4MTM2ZTc0MTE0YTYyMTUyN2I5YzQzZGMyZV8xLTAtMS0xLTc3OTA4_1443bb0f-6a06-46f5-906f-36878ff9acd5">Class A common stock, $0.0001 par value per share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGFibGU6ZGYxNmY0ODEzNmU3NDExNGE2MjE1MjdiOWM0M2RjMmUvdGFibGVyYW5nZTpkZjE2ZjQ4MTM2ZTc0MTE0YTYyMTUyN2I5YzQzZGMyZV8xLTEtMS0xLTc3OTA4_fdc87d46-6444-4d8e-9586-73c3220247ad">PUBM</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGFibGU6ZGYxNmY0ODEzNmU3NDExNGE2MjE1MjdiOWM0M2RjMmUvdGFibGVyYW5nZTpkZjE2ZjQ4MTM2ZTc0MTE0YTYyMTUyN2I5YzQzZGMyZV8xLTItMS0xLTc3OTA4_b0e32f7b-f54e-4363-8b1f-e534a80476be">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityWellKnownSeasonedIssuer
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zNTU1_d47899ae-95d2-4a00-afc4-593ea2d32cc0">Yes</dei:EntityWellKnownSeasonedIssuer>
    <dei:EntityVoluntaryFilers
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zNTY3_075822f4-8fc0-468e-9efc-8f549b6cebca">No</dei:EntityVoluntaryFilers>
    <dei:EntityCurrentReportingStatus
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zNTYx_5801a823-b37a-4b9f-a31d-0431dc9ea6c8">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zNTY4_cfe294fc-9870-4e17-90e5-dd4a4fcadfbe">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGFibGU6NWJhNWViYjI3ZjcyNDcxZmE5YzEyZWJhOWU4NmI2YTkvdGFibGVyYW5nZTo1YmE1ZWJiMjdmNzI0NzFmYTljMTJlYmE5ZTg2YjZhOV8wLTAtMS0xLTc3OTA4_e5417dca-3422-4921-9be7-18d2f18dcb07">Large Accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGFibGU6NWJhNWViYjI3ZjcyNDcxZmE5YzEyZWJhOWU4NmI2YTkvdGFibGVyYW5nZTo1YmE1ZWJiMjdmNzI0NzFmYTljMTJlYmE5ZTg2YjZhOV8yLTUtMS0xLTc3OTA4_fabc4bc7-10bc-4f3b-94c7-f10e29bee30b">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGFibGU6NWJhNWViYjI3ZjcyNDcxZmE5YzEyZWJhOWU4NmI2YTkvdGFibGVyYW5nZTo1YmE1ZWJiMjdmNzI0NzFmYTljMTJlYmE5ZTg2YjZhOV80LTUtMS0xLTc3OTA4_72a67a7f-d78b-4a99-89d2-0b3269d8cd59">false</dei:EntityEmergingGrowthCompany>
    <dei:IcfrAuditorAttestationFlag
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zNTY5_b597f179-b567-467c-9d2d-962a30d21b31">true</dei:IcfrAuditorAttestationFlag>
    <dei:EntityShellCompany
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zNTYy_a1d4c48c-f25f-4302-9cab-570cd627175b">false</dei:EntityShellCompany>
    <dei:EntityPublicFloat
      contextRef="i61a9e3107d254efcafe0ab1fe23305d6_I20220630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8yOTk1_63bc9119-0604-439b-a255-bfddfd96e380"
      unitRef="usd">704000000</dei:EntityPublicFloat>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i80d335a05de54d98a740afc4ee3dcdc4_I20230224"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zMDM0_caf87ca0-3da4-4d75-9b3f-d97e558ee0f0"
      unitRef="shares">43576097</dei:EntityCommonStockSharesOutstanding>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i41d26801ef72406182c641384ebf660a_I20230224"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zMTAx_bbb5c4ae-103e-463b-8c6f-74be8b710f11"
      unitRef="shares">9251882</dei:EntityCommonStockSharesOutstanding>
    <dei:DocumentsIncorporatedByReferenceTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xL2ZyYWc6ZmIzNDI3OTU2MmFiNDc4ODliNjg1NDMzMDVkYjMyNTAvdGV4dHJlZ2lvbjpmYjM0Mjc5NTYyYWI0Nzg4OWI2ODU0MzMwNWRiMzI1MF8zNTYz_6d0dbacc-6a44-4eba-a281-da8844d951b7">Portions of the registrant&#x2019;s proxy statement for its 2023 annual meeting of stockholders are incorporated herein by reference in Part III of this Annual Report on Form 10-K to the extent stated herein. Such proxy statement will be filed with the Securities and Exchange Commission within 120 days of the registrant&#x2019;s fiscal year ended December&#160;31, 2022.</dei:DocumentsIncorporatedByReferenceTextBlock>
    <dei:AuditorFirmId
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl83OS9mcmFnOmRjZjhkNjhjOGEyMTRiODM5NjI1OTI3ZTk5ZmFmM2UyL3RhYmxlOjBlNjYzMTk4N2RjNDQ1NDE5ZGZjMjFkZGMwNTU5YTA2L3RhYmxlcmFuZ2U6MGU2NjMxOTg3ZGM0NDU0MTlkZmMyMWRkYzA1NTlhMDZfMS0wLTEtMS03NzkwOC90ZXh0cmVnaW9uOjY3NTExOTRjYWI5NDRiZTM5ODVlMDA4NzI0OGFmN2VmXzc0_477b5411-bbe2-4049-82e0-7354ca7a5070">34</dei:AuditorFirmId>
    <dei:AuditorName
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84Mi9mcmFnOjM0MmQxNzcyMzViMTRmZjY5ZTliODBjM2NmNGIyNThiL3RleHRyZWdpb246MzQyZDE3NzIzNWIxNGZmNjllOWI4MGMzY2Y0YjI1OGJfODgyMw_e1331488-837c-42c1-85b3-b00f97043438">DELOITTE &amp; TOUCHE LLP</dei:AuditorName>
    <dei:AuditorLocation
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84Mi9mcmFnOjM0MmQxNzcyMzViMTRmZjY5ZTliODBjM2NmNGIyNThiL3RleHRyZWdpb246MzQyZDE3NzIzNWIxNGZmNjllOWI4MGMzY2Y0YjI1OGJfODgyMg_0ca8ee41-2a16-4d46-9b1f-6d6091efb70d">San Jose, California</dei:AuditorLocation>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfNC0xLTEtMS03NzkwOA_405b88db-bd3e-453a-8c5e-00b8bcf7a8ee"
      unitRef="usd">92382000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfNC0zLTEtMS03NzkwOA_f5fe0225-d42e-4317-b0ba-6d5e49728b4f"
      unitRef="usd">82505000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfNS0xLTEtMS03NzkwOA_7a18da28-d6d7-49a5-9b81-657ea34befb3"
      unitRef="usd">82013000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfNS0zLTEtMS03NzkwOA_cb3fa6ea-461c-4191-8513-62698fda9b28"
      unitRef="usd">77121000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfNi0xLTEtMS03NzkwOA_4eb87c73-8aa6-4674-b743-16aebc98776b"
      unitRef="usd">314299000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfNi0zLTEtMS03NzkwOA_efcb8994-1686-433c-8779-6f2a535c6c44"
      unitRef="usd">286916000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfNy0xLTEtMS03NzkwOA_3b108982-8373-4c1d-abbe-b8ee27fe02d7"
      unitRef="usd">14784000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfNy0zLTEtMS03NzkwOA_efaf960f-e0cd-47e9-8c47-ffd5990880c8"
      unitRef="usd">14207000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfOC0xLTEtMS03NzkwOA_e024a74c-a16c-4a87-a60b-404813cb3192"
      unitRef="usd">503478000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfOC0zLTEtMS03NzkwOA_8fb43e07-a173-4836-a75f-11302647afec"
      unitRef="usd">460749000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfOS0xLTEtMS03NzkwOA_dd31222d-2eb5-435b-817f-453242754579"
      unitRef="usd">71156000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfOS0zLTEtMS03NzkwOA_e8a3f106-bf14-4ad7-a5af-8998cfefed54"
      unitRef="usd">50140000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTAtMS0xLTEtNzc5MDg_f6855414-3430-43be-b7ee-5a6ab5bd8830"
      unitRef="usd">26206000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTAtMy0xLTEtNzc5MDg_da387ec5-e323-4a3b-9815-3fb7c3a95deb"
      unitRef="usd">21613000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTAtMS0xLTEtODU1OTY_b0231638-6a89-4625-a453-4a84a41d86ef"
      unitRef="usd">8299000</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:IntangibleAssetsNetExcludingGoodwill
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTAtMy0xLTEtODU1OTc_a242502b-ef90-4a88-98e9-dcaa8c77ed7a"
      unitRef="usd">0</us-gaap:IntangibleAssetsNetExcludingGoodwill>
    <us-gaap:Goodwill
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTEtMS0xLTEtNzc5MDg_de990143-2e93-4c51-8bf5-709b824c610d"
      unitRef="usd">29577000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTEtMy0xLTEtNzc5MDg_7c00fa79-e97c-4ca6-b3b7-5cfb96ead429"
      unitRef="usd">6250000</us-gaap:Goodwill>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTItMS0xLTEtNzc5MDg_670868ad-9027-4289-9461-d8a8dca0dbf5"
      unitRef="usd">1047000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTItMy0xLTEtNzc5MDg_6a189bfc-8f62-4497-ae51-db432f55ce3e"
      unitRef="usd">515000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTMtMS0xLTEtNzc5MDg_c3c2d928-81b8-41f9-b965-b997ec7be665"
      unitRef="usd">2412000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTMtMy0xLTEtNzc5MDg_37e1637a-e691-4912-b4cd-1d695841996a"
      unitRef="usd">10948000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTQtMS0xLTEtNzc5MDg_99ddb782-cbf9-4dcd-8691-49a137f1d39d"
      unitRef="usd">642175000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTQtMy0xLTEtNzc5MDg_b201b46a-1494-40de-857a-36b04b738134"
      unitRef="usd">550215000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTctMS0xLTEtNzc5MDg_02a2cca5-271d-4a89-8302-a6e50bcd6c9d"
      unitRef="usd">277414000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTctMy0xLTEtNzc5MDg_ec7d1afc-ae94-4615-9848-5df0acda448e"
      unitRef="usd">244321000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTgtMS0xLTEtNzc5MDg_03c401e3-4940-4249-9deb-6a048f4b0899"
      unitRef="usd">18936000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTgtMy0xLTEtNzc5MDg_81220634-e882-4670-a31c-a985ca724717"
      unitRef="usd">18780000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTktMS0xLTEtNzc5MDg_6f526df2-326c-4fb2-9eb7-5d37b2a875b2"
      unitRef="usd">5676000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMTktMy0xLTEtNzc5MDg_d76d0628-df1d-4aa9-81bc-6f96869b9550"
      unitRef="usd">3864000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjAtMS0xLTEtNzc5MDg_53adb141-6f5d-4f44-8646-b611e06ee9df"
      unitRef="usd">302026000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjAtMy0xLTEtNzc5MDg_3e95cf58-6b69-4ade-ae4e-36c1b0ebd677"
      unitRef="usd">266965000</us-gaap:LiabilitiesCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjEtMS0xLTEtNzc5MDg_a171d3b3-4f7a-4085-b13a-915482de0327"
      unitRef="usd">20915000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjEtMy0xLTEtNzc5MDg_dcc205fb-f7d0-47ce-b245-7dc5f3cb1ecd"
      unitRef="usd">17842000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjItMS0xLTEtNzc5MDg_bcbf09bb-1a3b-438b-a399-2d77f244b2a8"
      unitRef="usd">573000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjItMy0xLTEtNzc5MDg_2122dcf6-e0f8-4bc2-a1bb-69fb0a3da464"
      unitRef="usd">6067000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjMtMS0xLTEtNzc5MDg_a9b8bd5e-2d62-4d04-8b66-7188236c7c33"
      unitRef="usd">6473000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjMtMy0xLTEtNzc5MDg_d4a656f9-afa0-423c-b306-13d789b7be53"
      unitRef="usd">2161000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjQtMS0xLTEtNzc5MDg_de191171-852d-44e6-ab76-43a5ee21e9b0"
      unitRef="usd">329987000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjQtMy0xLTEtNzc5MDg_51257f27-755c-4f92-9b41-1263d30ef8a1"
      unitRef="usd">293035000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjUtMS0xLTEtNzc5MDg_128de91a-e473-4dc1-a942-ef732db576ec"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjUtMy0xLTEtNzc5MDg_a8befe73-d009-4245-93e2-6c0bd32b5c3d"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjctMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpkZGE5Mjc4YTljMzU0NzY0ODM4MzUxZjRlZGJmNmE3N18yMQ_46c21f67-46d4-4a9c-921a-5581fb729b1e"
      unitRef="usdPerShare">0.0001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjctMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpkZGE5Mjc4YTljMzU0NzY0ODM4MzUxZjRlZGJmNmE3N18yMQ_b01ebee7-9b12-4ed1-9dca-a446b3e0c2cf"
      unitRef="usdPerShare">0.0001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjctMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpkZGE5Mjc4YTljMzU0NzY0ODM4MzUxZjRlZGJmNmE3N180NQ_79831359-da83-4e6d-9d3a-c6ce5c84a94d"
      unitRef="shares">10000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjctMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpkZGE5Mjc4YTljMzU0NzY0ODM4MzUxZjRlZGJmNmE3N180NQ_fdb83d8e-5f45-43b7-b78f-0375458fe4d4"
      unitRef="shares">10000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesIssued
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjctMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpkZGE5Mjc4YTljMzU0NzY0ODM4MzUxZjRlZGJmNmE3N184Mw_66e1b7f1-1b04-424d-952c-8bf86bb78d2e"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjctMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpkZGE5Mjc4YTljMzU0NzY0ODM4MzUxZjRlZGJmNmE3N184Mw_834b4c9c-1afa-40ac-adca-bc460d93c651"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjctMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpkZGE5Mjc4YTljMzU0NzY0ODM4MzUxZjRlZGJmNmE3N184Mw_8dd9e8e5-95b0-410e-9ab8-06468735d2b6"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjctMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpkZGE5Mjc4YTljMzU0NzY0ODM4MzUxZjRlZGJmNmE3N184Mw_da3c822b-a353-4953-a2bb-8211480e2a96"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockValue
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjctMS0xLTEtNzc5MDg_6d6056b1-1118-4f2f-ac7f-8ce3201ee373"
      unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjctMy0xLTEtNzc5MDg_c5d8ffb6-9fdf-4497-8716-8cb04a818630"
      unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="ifa9796e50d594b00a80a484c70c8d554_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV81NDk3NTU4MTQ0MDQ_15754ddc-5897-4858-8b67-148138467689"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="ifd7e5ffaadbf4ae98099c49fe01d4f34_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV81NDk3NTU4MTQ0MDQ_a7ee862f-ebc9-43ad-b1b1-787bde63e974"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i173af4e1ac634c5cafc46d424c48a9f1_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV81NDk3NTU4MTQ0MDQ_d0d54408-7092-41c0-9b7e-03b2388925e3"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="icb9ce0090f0442a0b93e963f07695aa3_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV81NDk3NTU4MTQ0MDQ_ff08a137-a7f5-43fb-9451-8cb4f6e91beb"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i173af4e1ac634c5cafc46d424c48a9f1_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV81NDk3NTU4MTQ0NTA_578fc2d0-9ca4-454e-a00b-de46b72c234e"
      unitRef="shares">1000000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="icb9ce0090f0442a0b93e963f07695aa3_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV81NDk3NTU4MTQ0NTA_ff36ea6b-3362-4922-8807-16928ecd24ad"
      unitRef="shares">1000000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="i173af4e1ac634c5cafc46d424c48a9f1_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV81NDk3NTU4MTQzODE_7c7c2ff9-a5e9-4dc1-902b-8ef354325ea0"
      unitRef="shares">43452302</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i173af4e1ac634c5cafc46d424c48a9f1_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV81NDk3NTU4MTQzODE_b80abb8e-99d9-4f87-b8ce-87d8320be1e9"
      unitRef="shares">43452302</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="icb9ce0090f0442a0b93e963f07695aa3_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV81NDk3NTU4MTQzOTQ_50d1288f-1176-4378-8d01-cd35bcd223ed"
      unitRef="shares">40695140</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="icb9ce0090f0442a0b93e963f07695aa3_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV81NDk3NTU4MTQzOTQ_7658b12a-28a3-41a7-83db-5042b13d7169"
      unitRef="shares">40695140</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="ifa9796e50d594b00a80a484c70c8d554_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV81NDk3NTU4MTQ0NjY_7e9991dd-1168-4731-84f3-673de60f9fce"
      unitRef="shares">1000000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="ifd7e5ffaadbf4ae98099c49fe01d4f34_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV81NDk3NTU4MTQ0NjY_955039a6-20db-4514-a9d2-e6c6d7b68027"
      unitRef="shares">1000000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="ifa9796e50d594b00a80a484c70c8d554_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV8xMDk5NTExNjI4NjAw_c02473c1-54b7-47f0-afc7-7423f5b8eb9b"
      unitRef="shares">12393322</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ifa9796e50d594b00a80a484c70c8d554_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV8xMDk5NTExNjI4NTg4_5e1063eb-bf39-4072-bb0f-c4d8a7464e0e"
      unitRef="shares">9252885</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="ifd7e5ffaadbf4ae98099c49fe01d4f34_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMDFmNDllNmMwZWY0NjU1YTE2ZDdjNGIxMWJkODA1NV81NDk3NTU4MTQ1MDM_c51a277e-e1c4-452b-b7cd-b64b81bdc127"
      unitRef="shares">11159609</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockValue
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMS0xLTEtNzc5MDg_d29f4eed-bf7a-4c8b-9b56-9158c065f36e"
      unitRef="usd">6000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjgtMy0xLTEtNzc5MDg_d3dc373e-a4ca-44b1-8f12-7e102da17cd4"
      unitRef="usd">6000</us-gaap:CommonStockValue>
    <us-gaap:TreasuryStockShares
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjktMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjo4YWUxY2QyNDg3Y2Y0OWEwYmZkYjY3YjY4ZjQxN2FjNl8xMDk5NTExNjI3ODY3_26574e8b-9f88-43b8-a75e-36d3718a5e1f"
      unitRef="shares">3140437</us-gaap:TreasuryStockShares>
    <us-gaap:TreasuryStockShares
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjktMC0xLTEtNzc5MDgvdGV4dHJlZ2lvbjo4YWUxY2QyNDg3Y2Y0OWEwYmZkYjY3YjY4ZjQxN2FjNl8xMDk5NTExNjI3ODY3_b90aff06-aa05-42a3-857d-d2e1ba962de8"
      unitRef="shares">3140437</us-gaap:TreasuryStockShares>
    <us-gaap:TreasuryStockValue
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjktMS0xLTEtNzc5MDg_34d9bea0-0505-435e-83d5-d0e56c80e7fa"
      unitRef="usd">11486000</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMjktMy0xLTEtNzc5MDg_bf9c3eb6-7cf3-4c79-906c-ebb589ec8f29"
      unitRef="usd">11486000</us-gaap:TreasuryStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMzAtMS0xLTEtNzc5MDg_16387e95-d036-4a3d-a813-be1ba479992d"
      unitRef="usd">195677000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMzAtMy0xLTEtNzc5MDg_0bc3de0e-1dbe-4d06-9560-a88543f7841f"
      unitRef="usd">169401000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMzEtMS0xLTEtNzc5MDg_8b06e08d-5809-41ca-b931-e47bfba72505"
      unitRef="usd">-9000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMzEtMy0xLTEtNzc5MDg_4364e7ac-3050-4c99-af15-ce3ce85a2564"
      unitRef="usd">-36000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMzItMS0xLTEtNzc5MDg_7b9daa62-c509-4fa3-8db6-dfa34e356241"
      unitRef="usd">128000000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMzItMy0xLTEtNzc5MDg_caf85e9d-5863-44a7-b69e-4261523c2c6a"
      unitRef="usd">99295000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMzMtMS0xLTEtNzc5MDg_9806e70b-d89c-4806-817d-517adc4728a9"
      unitRef="usd">312188000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMzMtMy0xLTEtNzc5MDg_9805174a-c2ba-4a7c-bb0f-36842ec13206"
      unitRef="usd">257180000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMzQtMS0xLTEtNzc5MDg_44adfd93-3dd5-4856-9776-05ce38f8029a"
      unitRef="usd">642175000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84NS9mcmFnOjViYmFkNjIyZGJlMzQyN2FhOTQzMTJmNGIzMTNmZTc4L3RhYmxlOjYyYzBkNGVmYWEwMjQ4M2Y4Y2M4ZjdmODliMThlNWM2L3RhYmxlcmFuZ2U6NjJjMGQ0ZWZhYTAyNDgzZjhjYzhmN2Y4OWIxOGU1YzZfMzQtMy0xLTEtNzc5MDg_7b9c4c47-ad97-45af-a744-3e721dfdea9b"
      unitRef="usd">550215000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMy0xLTEtMS03NzkwOA_2a01711d-9e3c-42c2-8c80-fdfd0e5ce715"
      unitRef="usd">256380000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMy0zLTEtMS03NzkwOA_7e48bce6-e12e-4d86-9ca6-39bc58acf88b"
      unitRef="usd">226908000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMy01LTEtMS03NzkwOA_4e34d420-d359-431f-8e8f-cc0b81540793"
      unitRef="usd">148748000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfNC0xLTEtMS03NzkwOA_641d5f91-7d0f-4a98-adb5-be48d2b7582e"
      unitRef="usd">81512000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfNC0zLTEtMS03NzkwOA_a4924e5c-3282-4118-a3bf-4926e32b4dec"
      unitRef="usd">58313000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfNC01LTEtMS03NzkwOA_bcc7e0a6-60f6-4f83-8865-500517712a09"
      unitRef="usd">41186000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfNS0xLTEtMS03NzkwOA_89c10fc6-fbd1-44c2-a7eb-238fb34bf78d"
      unitRef="usd">174868000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfNS0zLTEtMS03NzkwOA_85ea048f-e21e-4f5b-aabf-1cf120e6ff82"
      unitRef="usd">168595000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfNS01LTEtMS03NzkwOA_ef948ccd-642d-41f4-bbc8-4347d2624f50"
      unitRef="usd">107562000</us-gaap:GrossProfit>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfOC0xLTEtMS03NzkwOA_32d8ca82-d1fb-4d0a-87eb-6bfb1b519c3f"
      unitRef="usd">20846000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfOC0zLTEtMS03NzkwOA_1eddc5b2-8312-4291-a681-adde53182ae5"
      unitRef="usd">15885000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfOC01LTEtMS03NzkwOA_cbbcdc4f-a63b-4eb3-a003-5f9f0da2d432"
      unitRef="usd">12250000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfOS0xLTEtMS03NzkwOA_41ccb94d-9f0f-4a5c-b136-54c57ebaecfd"
      unitRef="usd">68562000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfOS0zLTEtMS03NzkwOA_9f8cb9a3-ca0d-4b45-b08d-d529d5618374"
      unitRef="usd">58160000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfOS01LTEtMS03NzkwOA_9baf0e2e-0959-46dc-8e53-d103fe0f4d06"
      unitRef="usd">43297000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTAtMS0xLTEtNzc5MDg_b7724890-9bbf-424a-9dbd-d49e3c326323"
      unitRef="usd">44940000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTAtMy0xLTEtNzc5MDg_ac6afad4-2986-418c-9857-e9d4fdaea639"
      unitRef="usd">35761000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTAtNS0xLTEtNzc5MDg_bfaf2b58-98e9-4e91-9747-43406427a002"
      unitRef="usd">20260000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:OperatingExpenses
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTEtMS0xLTEtNzc5MDg_90bde470-a487-44e4-a130-38a730c362ce"
      unitRef="usd">134348000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTEtMy0xLTEtNzc5MDg_606508b8-2a94-4258-a72c-3122fe7867d4"
      unitRef="usd">109806000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTEtNS0xLTEtNzc5MDg_c7ed01b5-ab8c-415e-822b-b494abb9fe94"
      unitRef="usd">75807000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTItMS0xLTEtNzc5MDg_d406390a-d0a1-4f40-926e-6b978ef0206d"
      unitRef="usd">40520000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTItMy0xLTEtNzc5MDg_2b8973e6-38b7-462f-8a8b-b648242e9abd"
      unitRef="usd">58789000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTItNS0xLTEtNzc5MDg_1ec71202-60e9-4ca6-af7c-65265a36ec22"
      unitRef="usd">31755000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InvestmentIncomeInterest
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTEtMS0xLTEtOTAzMjY_f12d7c3b-b5be-4ff8-98e9-6eca5fe4e66d"
      unitRef="usd">2214000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTEtMy0xLTEtOTAzMjY_2da89a9a-9c0b-4d41-afaa-686ba42d3d10"
      unitRef="usd">300000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTEtNS0xLTEtOTAzMjY_cbfb0cfb-08af-41ad-aaae-0d0c4415c4a9"
      unitRef="usd">537000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueDownwardPriceAdjustmentAnnualAmount
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTItMS0xLTEtOTAzMjY_02df9bc1-e392-4b38-9d97-7f720843edbf"
      unitRef="usd">5948000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueDownwardPriceAdjustmentAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTItMy0xLTEtOTAzMjY_c3e0ab4c-0fce-49af-b0fc-7cd0c48d5f01"
      unitRef="usd">5433000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueUpwardPriceAdjustmentAnnualAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueDownwardPriceAdjustmentAnnualAmount
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTItNS0xLTEtOTAzMjY_318d3894-74d5-428b-87b1-4df219269b28"
      unitRef="usd">0</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueDownwardPriceAdjustmentAnnualAmount>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTMtMS0xLTEtOTAzMjY_13fac20f-61ed-454b-9126-6e3bb94462b2"
      unitRef="usd">681000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTMtMy0xLTEtOTAzMjY_83dbac99-afa6-4cf9-bd15-73f2a0f6b8f2"
      unitRef="usd">281000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTMtNS0xLTEtOTAzMjY_e25372c4-29cd-48d2-8863-c6fb176f6c32"
      unitRef="usd">-712000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTYtMS0xLTEtNzc5MDg_85229ab4-0fdb-498b-bc57-65ecef7adf20"
      unitRef="usd">-3053000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTYtMy0xLTEtNzc5MDg_cc9a8b45-eb30-45da-ab9c-df1f13adaec0"
      unitRef="usd">6014000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTYtNS0xLTEtNzc5MDg_1b42db95-2d7b-4c7f-a969-54fba7bb9fda"
      unitRef="usd">-175000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTctMS0xLTEtNzc5MDg_ecb73fb3-ee35-4e10-838a-64f6cf0760e3"
      unitRef="usd">37467000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTctMy0xLTEtNzc5MDg_5eeca1cc-b763-41b7-91a7-767372a39a1e"
      unitRef="usd">64803000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTctNS0xLTEtNzc5MDg_204e774c-d7b2-4944-ab2f-6b735088f9fe"
      unitRef="usd">31580000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTgtMS0xLTEtNzc5MDg_c807b69d-f6cb-4692-9821-db9c88364780"
      unitRef="usd">8762000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTgtMy0xLTEtNzc5MDg_2b67e4fd-2e42-4434-99ac-ceb493d95f94"
      unitRef="usd">8199000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTgtNS0xLTEtNzc5MDg_b4560048-ee86-4509-84bc-d9e1eef5ac3b"
      unitRef="usd">4967000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTktMS0xLTEtNzc5MDg_b5d1641a-c51a-4e82-8ac7-c355dee868e9"
      unitRef="usd">28705000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTktMy0xLTEtNzc5MDg_3b520634-9fb1-4c5d-85eb-19f3c8fa9059"
      unitRef="usd">56604000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMTktNS0xLTEtNzc5MDg_ca1a93fc-579e-4e87-812b-b129afc17888"
      unitRef="usd">26613000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMjEtMS0xLTEtNzc5MDg_687cb05e-cc4d-46b9-9e73-f334449f4223"
      unitRef="usdPerShare">0.55</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMjEtMy0xLTEtNzc5MDg_4e2215ab-3305-4d3e-af2f-a3518cd5aa64"
      unitRef="usdPerShare">1.13</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMjEtNS0xLTEtNzc5MDg_4ba1301c-7012-4ff1-9ee4-0605726cad4b"
      unitRef="usdPerShare">0.51</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMjItMS0xLTEtNzc5MDg_fa3b3944-fa1c-49fd-8688-302de6e887ca"
      unitRef="usdPerShare">0.50</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMjItMy0xLTEtNzc5MDg_18744c50-477b-4535-ab42-4d4b19933fd4"
      unitRef="usdPerShare">1.00</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMjItNS0xLTEtNzc5MDg_d7889c19-f174-4051-8894-2b22a7040e2d"
      unitRef="usdPerShare">0.46</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMjUtMS0xLTEtNzc5MDg_4f069978-a868-46e5-9806-eee86a0afbff"
      unitRef="shares">52278009</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMjUtMy0xLTEtNzc5MDg_76428ea0-fd04-45cc-931a-3fa6db93e842"
      unitRef="shares">50184455</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMjUtNS0xLTEtNzc5MDg_06bb1633-6fd8-485a-aec2-d521e960f7a1"
      unitRef="shares">12642293</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMjYtMS0xLTEtNzc5MDg_8ad92ae7-088b-42ad-bb53-9ecd77704c68"
      unitRef="shares">56908197</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMjYtMy0xLTEtNzc5MDg_5f18fae3-9fec-40a8-a095-8b6cc0418251"
      unitRef="shares">56628574</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl84OC9mcmFnOmJhYjEwNWUwYTEyOTRkNDg4YjRmZGU3MDNlY2VmMDVlL3RhYmxlOmM4ZjY5YmNhMGE2NjQ0NTQ4NWUzYmE5MWYxNDMzMjI5L3RhYmxlcmFuZ2U6YzhmNjliY2EwYTY2NDQ1NDg1ZTNiYTkxZjE0MzMyMjlfMjYtNS0xLTEtNzc5MDg_8d0ee420-4c28-4297-9eb7-90e5589b9b35"
      unitRef="shares">17125882</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85MS9mcmFnOjlmZThmZWQwNGVkZDRiNzA5NjEzYjAzNTk2YjE3ZTA4L3RhYmxlOmMzNjc0OWI1YjhkODQ4OGZhODI0Nzc1YmRiMWQyODY4L3RhYmxlcmFuZ2U6YzM2NzQ5YjViOGQ4NDg4ZmE4MjQ3NzViZGIxZDI4NjhfMy0xLTEtMS03NzkwOA_84323522-3fc0-44d8-a249-215035e203d5"
      unitRef="usd">28705000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85MS9mcmFnOjlmZThmZWQwNGVkZDRiNzA5NjEzYjAzNTk2YjE3ZTA4L3RhYmxlOmMzNjc0OWI1YjhkODQ4OGZhODI0Nzc1YmRiMWQyODY4L3RhYmxlcmFuZ2U6YzM2NzQ5YjViOGQ4NDg4ZmE4MjQ3NzViZGIxZDI4NjhfMy0zLTEtMS03NzkwOA_8eea0c4a-58f0-413e-af51-ea26abd0f249"
      unitRef="usd">56604000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85MS9mcmFnOjlmZThmZWQwNGVkZDRiNzA5NjEzYjAzNTk2YjE3ZTA4L3RhYmxlOmMzNjc0OWI1YjhkODQ4OGZhODI0Nzc1YmRiMWQyODY4L3RhYmxlcmFuZ2U6YzM2NzQ5YjViOGQ4NDg4ZmE4MjQ3NzViZGIxZDI4NjhfMy01LTEtMS03NzkwOA_08d9a0ec-cf97-48fe-988b-ff3a7dd372e3"
      unitRef="usd">26613000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85MS9mcmFnOjlmZThmZWQwNGVkZDRiNzA5NjEzYjAzNTk2YjE3ZTA4L3RhYmxlOmMzNjc0OWI1YjhkODQ4OGZhODI0Nzc1YmRiMWQyODY4L3RhYmxlcmFuZ2U6YzM2NzQ5YjViOGQ4NDg4ZmE4MjQ3NzViZGIxZDI4NjhfNS0xLTEtMS03NzkwOA_138bc7c0-cb4b-45e1-afe1-1dc03e243514"
      unitRef="usd">27000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85MS9mcmFnOjlmZThmZWQwNGVkZDRiNzA5NjEzYjAzNTk2YjE3ZTA4L3RhYmxlOmMzNjc0OWI1YjhkODQ4OGZhODI0Nzc1YmRiMWQyODY4L3RhYmxlcmFuZ2U6YzM2NzQ5YjViOGQ4NDg4ZmE4MjQ3NzViZGIxZDI4NjhfNS0zLTEtMS03NzkwOA_c2d95f95-d954-4b1c-9d37-1166df6616c3"
      unitRef="usd">-37000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85MS9mcmFnOjlmZThmZWQwNGVkZDRiNzA5NjEzYjAzNTk2YjE3ZTA4L3RhYmxlOmMzNjc0OWI1YjhkODQ4OGZhODI0Nzc1YmRiMWQyODY4L3RhYmxlcmFuZ2U6YzM2NzQ5YjViOGQ4NDg4ZmE4MjQ3NzViZGIxZDI4NjhfNS01LTEtMS03NzkwOA_ff759f3f-5f42-48a8-be65-a4852e8db761"
      unitRef="usd">-5000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85MS9mcmFnOjlmZThmZWQwNGVkZDRiNzA5NjEzYjAzNTk2YjE3ZTA4L3RhYmxlOmMzNjc0OWI1YjhkODQ4OGZhODI0Nzc1YmRiMWQyODY4L3RhYmxlcmFuZ2U6YzM2NzQ5YjViOGQ4NDg4ZmE4MjQ3NzViZGIxZDI4NjhfNi0xLTEtMS03NzkwOA_0d03f197-7e8a-4057-9d21-51ee15dab4ad"
      unitRef="usd">28732000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85MS9mcmFnOjlmZThmZWQwNGVkZDRiNzA5NjEzYjAzNTk2YjE3ZTA4L3RhYmxlOmMzNjc0OWI1YjhkODQ4OGZhODI0Nzc1YmRiMWQyODY4L3RhYmxlcmFuZ2U6YzM2NzQ5YjViOGQ4NDg4ZmE4MjQ3NzViZGIxZDI4NjhfNi0zLTEtMS03NzkwOA_8be28be1-058b-4629-9739-5e54596201a3"
      unitRef="usd">56567000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85MS9mcmFnOjlmZThmZWQwNGVkZDRiNzA5NjEzYjAzNTk2YjE3ZTA4L3RhYmxlOmMzNjc0OWI1YjhkODQ4OGZhODI0Nzc1YmRiMWQyODY4L3RhYmxlcmFuZ2U6YzM2NzQ5YjViOGQ4NDg4ZmE4MjQ3NzViZGIxZDI4NjhfNi01LTEtMS03NzkwOA_8d589306-dca0-405f-8a96-6ec8b7b5aefd"
      unitRef="usd">26608000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="ie73ef48226804275a103058a20e02f26_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfOS0xLTEtMS03NzkwOA_73ad41b6-2bbc-4e0f-af06-4213989c815d"
      unitRef="shares">33443969</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="ie73ef48226804275a103058a20e02f26_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfOS0zLTEtMS03NzkwOA_2230fa0f-c2e8-4708-a6c9-9a28a3b6f7a2"
      unitRef="usd">61216000</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="i5f7b1e5bbc254c0fa3fda188fd1e56fb_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfOS01LTEtMS03NzkwOA_f97749c6-b0b8-47b5-af8c-0b684d4b902c"
      unitRef="shares">5901863</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i5f7b1e5bbc254c0fa3fda188fd1e56fb_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfOS03LTEtMS03NzkwOA_255df443-265b-4112-9659-033406c7246e"
      unitRef="usd">19025000</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:SharesOutstanding
      contextRef="ic08e732f97184fadb1698f78b6b396cb_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfOS0xMC0xLTEtNzc5MDg_142a845f-6a33-4f80-847f-bc4c5449be8c"
      unitRef="shares">5746216</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ic08e732f97184fadb1698f78b6b396cb_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfOS0xMi0xLTEtNzc5MDg_721928c9-afd0-463d-8e56-1115685d4824"
      unitRef="usd">1000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ida5333970f1d46a4aaa7f05ca12496bf_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfOS0xNC0xLTEtNzc5MDg_3a12b5f7-5647-419d-b436-2ad6a2d3d204"
      unitRef="usd">-11431000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i344a039b6ec24877a15544f032b7263d_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfOS0xNi0xLTEtNzc5MDg_8f9ee93e-b926-4017-bda2-e70d340ced78"
      unitRef="usd">8641000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i0989b9c7ec4d4d0b9be899c8141d4ce7_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfOS0xOC0xLTEtNzc5MDg_b7ec3b8a-95da-4adb-8363-a17d0e967b98"
      unitRef="usd">6000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if56a0c66503d41879b927e1eadad7085_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfOS0yMC0xLTEtNzc5MDg_ed97af69-cdcc-4fe3-a649-abff31bce8bf"
      unitRef="usd">16078000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i4d92a3b2acb54d89ae14c1fdee13f997_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfOS0yMi0xLTEtNzc5MDg_7cf60360-26f2-4b09-89b2-439c5d17a43b"
      unitRef="usd">13295000</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ic9ffd66a17b84f778a2ac2f939320157_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTAtMTYtMS0xLTc3OTA4_b080f610-38e2-46cc-a415-671115f29930"
      unitRef="usd">3603000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTAtMjItMS0xLTc3OTA4_d5d6e52e-0fc8-4dd6-a1a6-992fe2c82ed9"
      unitRef="usd">3603000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="ifa58dc389b4b42628c504b326e7b6d9c_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTEtMTAtMS0xLTc3OTA4_6892b9eb-32c6-44d6-881f-90ab29fa5a85"
      unitRef="shares">1241970</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ic9ffd66a17b84f778a2ac2f939320157_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTEtMTYtMS0xLTc3OTA4_4b2f07dd-66a4-405e-9af7-fe443a53d911"
      unitRef="usd">2409000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTEtMjItMS0xLTc3OTA4_efc41323-6511-4935-bffa-8b884c8805e2"
      unitRef="usd">2409000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="ifa58dc389b4b42628c504b326e7b6d9c_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTItMTAtMS0xLTc3OTA4_385debe7-11e3-4619-b479-bbe2287ebbff"
      unitRef="shares">876</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="ib2b6905eaebc457ab15ce9f2048fdbda_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTItMTQtMS0xLTc3OTA4_45087440-61b5-4c9b-80e2-65dbb3248e50"
      unitRef="usd">3000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTItMjItMS0xLTc3OTA4_0b8b1444-e97a-4ffd-98cb-ec4bdd67febc"
      unitRef="usd">3000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <pubm:AdjustmentsToAdditionalPaidInCapitalIncreaseForRepaymentOfNotesReceivable
      contextRef="ic9ffd66a17b84f778a2ac2f939320157_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTMtMTYtMS0xLTc3OTA4_364b7afb-9fe2-4cbc-b065-bd5aefd68879"
      unitRef="usd">-4268000</pubm:AdjustmentsToAdditionalPaidInCapitalIncreaseForRepaymentOfNotesReceivable>
    <pubm:AdjustmentsToAdditionalPaidInCapitalIncreaseForRepaymentOfNotesReceivable
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTMtMjItMS0xLTc3OTA4_ef829447-576b-4439-bf93-f260136000a1"
      unitRef="usd">-4268000</pubm:AdjustmentsToAdditionalPaidInCapitalIncreaseForRepaymentOfNotesReceivable>
    <pubm:RepaymentOfStockholdersNotesReceivableAndAccruedInterestShares
      contextRef="ic88389f7694140588ef3661018660843_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTQtNS0xLTEtNzc5MDg_611e72da-9d9c-47bf-8dd9-0449a74415e9"
      unitRef="shares">5901863</pubm:RepaymentOfStockholdersNotesReceivableAndAccruedInterestShares>
    <pubm:RepaymentOfStockholdersNotesReceivableAndAccruedInterestAmount
      contextRef="ic88389f7694140588ef3661018660843_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTQtNy0xLTEtNzc5MDg_e728ad7d-fe40-4f74-812d-f81340595b80"
      unitRef="usd">19025000</pubm:RepaymentOfStockholdersNotesReceivableAndAccruedInterestAmount>
    <pubm:StockIssuedDuringPeriodSharesReclassification
      contextRef="ifa58dc389b4b42628c504b326e7b6d9c_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTQtMTAtMS0xLTc3OTA4_9921fe78-ccc8-411c-b36e-c7f8250ea757"
      unitRef="shares">5901863</pubm:StockIssuedDuringPeriodSharesReclassification>
    <pubm:StockIssuedDuringPeriodValueReclassification
      contextRef="ifa58dc389b4b42628c504b326e7b6d9c_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTQtMTItMS0xLTc3OTA4_dada3730-0172-4c0b-b723-6735896ef565"
      unitRef="usd">1000</pubm:StockIssuedDuringPeriodValueReclassification>
    <pubm:StockIssuedDuringPeriodValueReclassification
      contextRef="ic9ffd66a17b84f778a2ac2f939320157_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTQtMTYtMS0xLTc3OTA4_1bc7e6ae-b025-488c-8e78-42abc1df6712"
      unitRef="usd">19024000</pubm:StockIssuedDuringPeriodValueReclassification>
    <pubm:StockIssuedDuringPeriodValueReclassification
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTQtMjItMS0xLTc3OTA4_39661f49-403b-4243-bacb-fb7a04e576dc"
      unitRef="usd">19025000</pubm:StockIssuedDuringPeriodValueReclassification>
    <pubm:TemporaryEquityStockIssuedDuringPeriodSharesConversionOfConvertibleSecurities
      contextRef="i42260beb5b884908a6d12162f2d055c4_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTUtMS0xLTEtNzc5MDg_29c3b82c-4be4-4b2b-993a-a12e1afc3553"
      unitRef="shares">33443969</pubm:TemporaryEquityStockIssuedDuringPeriodSharesConversionOfConvertibleSecurities>
    <pubm:TemporaryEquityStockIssuedDuringPeriodValueConversionOfConvertibleSecurities
      contextRef="i42260beb5b884908a6d12162f2d055c4_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTUtMy0xLTEtNzc5MDg_40323312-b353-4373-b090-19ae695bdfb6"
      unitRef="usd">61216000</pubm:TemporaryEquityStockIssuedDuringPeriodValueConversionOfConvertibleSecurities>
    <us-gaap:StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities
      contextRef="ifa58dc389b4b42628c504b326e7b6d9c_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTUtMTAtMS0xLTc3OTA4_9e7782fb-42d3-4a70-a155-261ceefd3a09"
      unitRef="shares">33443969</us-gaap:StockIssuedDuringPeriodSharesConversionOfConvertibleSecurities>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfConvertibleSecurities
      contextRef="ifa58dc389b4b42628c504b326e7b6d9c_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTUtMTItMS0xLTc3OTA4_98275ea4-1551-4aa3-b816-793c8ba91734"
      unitRef="usd">3000</us-gaap:StockIssuedDuringPeriodValueConversionOfConvertibleSecurities>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfConvertibleSecurities
      contextRef="ic9ffd66a17b84f778a2ac2f939320157_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTUtMTYtMS0xLTc3OTA4_74413827-ccae-4c0d-b31d-120ed4be1bfe"
      unitRef="usd">61213000</us-gaap:StockIssuedDuringPeriodValueConversionOfConvertibleSecurities>
    <us-gaap:StockIssuedDuringPeriodValueConversionOfConvertibleSecurities
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTUtMjItMS0xLTc3OTA4_b55309f6-cc50-453d-a106-5baddb467c5e"
      unitRef="usd">61216000</us-gaap:StockIssuedDuringPeriodValueConversionOfConvertibleSecurities>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="ifa58dc389b4b42628c504b326e7b6d9c_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTYtMTAtMS0xLTc3OTA4_9b69e7a6-971a-40a7-ba55-b944f9278305"
      unitRef="shares">2655000</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="ifa58dc389b4b42628c504b326e7b6d9c_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTYtMTItMS0xLTc3OTA4_a7471699-13ac-4afa-add7-3462fbf583d2"
      unitRef="usd">1000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="ic9ffd66a17b84f778a2ac2f939320157_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTYtMTYtMS0xLTc3OTA4_32f619aa-f285-4996-a7ad-31da96965f9c"
      unitRef="usd">45005000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:StockIssuedDuringPeriodValueNewIssues
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTYtMjItMS0xLTc3OTA4_9a9b852a-fa4d-4c92-a662-7ee85e5ab64b"
      unitRef="usd">45006000</us-gaap:StockIssuedDuringPeriodValueNewIssues>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="iec3280b2460d448889759f7fd78344e5_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTctMTgtMS0xLTc3OTA4_dc467150-c567-47af-892a-063ccf09cf15"
      unitRef="usd">-5000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTctMjItMS0xLTc3OTA4_d9c892b9-5ab6-4f37-aadc-26b2dbdb9689"
      unitRef="usd">-5000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:NetIncomeLoss
      contextRef="iaf3ef5172ad041f9955a67bd9618ff40_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTgtMjAtMS0xLTc3OTA4_9c328540-dbce-4a75-bbbe-c477e8e1289e"
      unitRef="usd">26613000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTgtMjItMS0xLTc3OTA4_1b317843-3be8-46e2-aa1f-1cc4325e75ff"
      unitRef="usd">26613000</us-gaap:NetIncomeLoss>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="i810032e96192423a8d32bca113891c1e_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTktMS0xLTEtNzc5MDg_5a1f4efb-99fc-4664-bc8e-5ecb2ecf538a"
      unitRef="shares">0</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i810032e96192423a8d32bca113891c1e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTktMy0xLTEtNzc5MDg_2ebae66f-811b-4891-995c-d247aa6386f2"
      unitRef="usd">0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="i2af87c514f934444b28bad275d6e62bb_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTktNS0xLTEtNzc5MDg_a0ddd5e2-21b0-4699-a70e-a8c2c4412ed4"
      unitRef="shares">0</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i2af87c514f934444b28bad275d6e62bb_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTktNy0xLTEtNzc5MDg_81edd1f5-e62a-4526-a814-7c56f5d6debf"
      unitRef="usd">0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:SharesOutstanding
      contextRef="idbbbf0d3fbd2476c9efa28ba6769ee47_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTktMTAtMS0xLTc3OTA4_e244df5b-cf8b-4597-82b9-925529304fba"
      unitRef="shares">48988142</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="idbbbf0d3fbd2476c9efa28ba6769ee47_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTktMTItMS0xLTc3OTA4_65245c2e-697a-46fd-8834-08e6c2f85000"
      unitRef="usd">6000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i9fb615ff0be9448bbdb4df74e8dd8520_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTktMTQtMS0xLTc3OTA4_821a66b5-2ba8-497d-b298-0ccf4f64cc0f"
      unitRef="usd">-11434000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i530e9379a3ab4bc7b55228049fb528b7_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTktMTYtMS0xLTc3OTA4_9407886a-9952-4d5c-a229-8725ac980650"
      unitRef="usd">144163000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if73a64c8512641499a2ff5b7022dedc0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTktMTgtMS0xLTc3OTA4_d451076b-f19a-424e-8961-deb9d0e565bd"
      unitRef="usd">1000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i2a8ec09ff5194aecbac1b6371c187c7b_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTktMjAtMS0xLTc3OTA4_3f81eed0-4f26-42d2-90a7-d20c2684fd95"
      unitRef="usd">42691000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMTktMjItMS0xLTc3OTA4_9b9c647d-f75e-47e6-a002-d3671005dcdc"
      unitRef="usd">175427000</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ice12c21b3183407d8d961304281d2b2e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjAtMTYtMS0xLTc3OTA4_6c4508c3-336f-41d0-b719-a220d73e72bc"
      unitRef="usd">15011000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjAtMjItMS0xLTc3OTA4_c47267d1-7066-40cf-b483-a9c688502184"
      unitRef="usd">15011000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i408be0a9863349e4865c79639462d631_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjEtMTAtMS0xLTc3OTA4_2cc1df83-6154-4f30-a28c-747a7a18b945"
      unitRef="shares">2511505</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ice12c21b3183407d8d961304281d2b2e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjEtMTYtMS0xLTc3OTA4_dc61b849-4369-4b7b-9187-aba229250f10"
      unitRef="usd">5423000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjEtMjItMS0xLTc3OTA4_fb8e3d89-0be6-41c3-903c-e96d39e6ed60"
      unitRef="usd">5423000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="i408be0a9863349e4865c79639462d631_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjItMTAtMS0xLTc3OTA4_5bd56fe0-4e7b-4858-aac5-e5e8de3d15ff"
      unitRef="shares">1142</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="ie014e4a2c4014b0dae2747f7bd74a7f5_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjItMTQtMS0xLTc3OTA4_60f37a2a-392f-431b-b531-8dcd4653d379"
      unitRef="usd">52000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjItMjItMS0xLTc3OTA4_c496a225-2985-44df-a392-dbf313357edd"
      unitRef="usd">52000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="i408be0a9863349e4865c79639462d631_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjMtMTAtMS0xLTc3OTA4_1037dfae-ee2d-4fbf-8ebb-292a057cd174"
      unitRef="shares">276406</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="ice12c21b3183407d8d961304281d2b2e_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjMtMTYtMS0xLTc3OTA4_e7b01cff-628f-4d8a-8b06-199310f82f2b"
      unitRef="usd">4804000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjMtMjItMS0xLTc3OTA4_7a9d05ee-f26c-421a-a4c2-423e60f07297"
      unitRef="usd">4804000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures
      contextRef="i408be0a9863349e4865c79639462d631_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjQtMTAtMS0xLTc3OTA4_516f7ef7-2e55-463e-b335-1cfbcf878f40"
      unitRef="shares">79838</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i8c69851eccea4e009f98b003e2d22273_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjUtMTgtMS0xLTc3OTA4_6eaae4ed-3c14-4c99-be41-edc531800e57"
      unitRef="usd">-37000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjUtMjItMS0xLTc3OTA4_4eafdc5f-8a09-4942-af61-ff3936255f5e"
      unitRef="usd">-37000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:NetIncomeLoss
      contextRef="i78eefb2767414464b28694efd4da2332_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjYtMjAtMS0xLTc3OTA4_4f9b3c9e-c726-42ad-b228-9a30140ca765"
      unitRef="usd">56604000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjYtMjItMS0xLTc3OTA4_f01ee223-16f3-4934-b174-3b9608b854af"
      unitRef="usd">56604000</us-gaap:NetIncomeLoss>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="ib6dffc4f4c064cd8ba8f93428d27b503_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMS0xLTEtNzc5MDg_6ac67def-c0cd-4012-9613-2e43ec331b7e"
      unitRef="shares">0</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="ib6dffc4f4c064cd8ba8f93428d27b503_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMy0xLTEtNzc5MDg_a57fef4f-2e63-45f8-bff6-366d1b00d63f"
      unitRef="usd">0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="i0192a2bdd18b498c8dc73aaacaa376b0_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctNS0xLTEtNzc5MDg_b88fb04c-aea2-43db-92a7-6d528edc9f82"
      unitRef="shares">0</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i0192a2bdd18b498c8dc73aaacaa376b0_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctNy0xLTEtNzc5MDg_2d86fedc-7262-47ec-88ac-e0e3f6aebafc"
      unitRef="usd">0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:SharesOutstanding
      contextRef="ida2a90b6d0b3494dbe2bd105b3adf042_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMTAtMS0xLTc3OTA4_261bd67a-93ca-445b-9ae3-e2526bbc16aa"
      unitRef="shares">51854749</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ida2a90b6d0b3494dbe2bd105b3adf042_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMTItMS0xLTc3OTA4_a2e47886-97c6-48e3-8919-968fb2b3841a"
      unitRef="usd">6000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i3bf48b06444545329ef81a9fd305df27_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMTQtMS0xLTc3OTA4_36ef342b-0b78-4a9c-921e-dfe2ce8473e9"
      unitRef="usd">-11486000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i30d38c949d354a21809107458a906479_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMTYtMS0xLTc3OTA4_8923a0fc-3fcf-460c-82b0-43189be5bf6f"
      unitRef="usd">169401000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ib182d0ac080243b3a0c53bcc11554237_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMTgtMS0xLTc3OTA4_191df4c4-cc84-4331-9921-bef44060aefc"
      unitRef="usd">-36000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i0262a55ed0064d50b4c8c5c4e463e4cd_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMjAtMS0xLTc3OTA4_04910e48-b2da-4983-93b4-c067a0466faa"
      unitRef="usd">99295000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMjItMS0xLTc3OTA4_2a9f6bf6-e714-431c-b5e4-858773a65a3a"
      unitRef="usd">257180000</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i22652937f3a44ab0b8fc6cfc8aa4c095_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjEtMTUtMS0xLTg1NjA5_5ec3b6da-07c9-41a4-9565-54a23f03800b"
      unitRef="usd">22121000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjEtMjEtMS0xLTg1NjA5_838edbf5-e630-4d6d-984f-bd66c65e0a77"
      unitRef="usd">22121000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i6b27a7aa0f3e49be9a6fef02e6977a12_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjItOS0xLTEtODU2MDk_78335fb8-747b-46f9-a8e5-4b727de4ca5c"
      unitRef="shares">358418</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i22652937f3a44ab0b8fc6cfc8aa4c095_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjItMTUtMS0xLTg1NjA5_8f43091e-7dd0-4530-8b0e-04ff4f41322f"
      unitRef="usd">1195000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjItMjEtMS0xLTg1NjA5_9ed43486-8542-4d3a-9b06-555d315566d8"
      unitRef="usd">1195000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="i6b27a7aa0f3e49be9a6fef02e6977a12_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjMtOS0xLTEtODU2MDk_05baef4d-26e1-4ee3-928f-bae6c2f42c82"
      unitRef="shares">183587</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="i22652937f3a44ab0b8fc6cfc8aa4c095_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjMtMTUtMS0xLTg1NjA5_346991f1-baae-49f6-b5d2-0e9e85c557e8"
      unitRef="usd">2960000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjMtMjEtMS0xLTg1NjA5_e1500aac-d166-4436-85af-ffed62f23b91"
      unitRef="usd">2960000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures
      contextRef="i6b27a7aa0f3e49be9a6fef02e6977a12_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjQtOS0xLTEtODU2MDk_13231491-bafd-4731-af34-7d62d1fc819d"
      unitRef="shares">308433</us-gaap:StockIssuedDuringPeriodSharesRestrictedStockAwardNetOfForfeitures>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i50790c54193a49bb8ac7df8d6d4cf4e5_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjUtMTctMS0xLTg1NjA5_ab33ce03-475c-45bf-97ba-fea17bb50d8f"
      unitRef="usd">27000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjUtMjEtMS0xLTg1NjA5_f9a7ef58-290a-464e-9f5c-113d4aac008c"
      unitRef="usd">27000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:NetIncomeLoss
      contextRef="i92667a35f7f14b08a2f9d265383d877a_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjYtMTktMS0xLTg1NjA5_778df75a-ba90-453b-b1ca-c7171ac82019"
      unitRef="usd">28705000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjYtMjEtMS0xLTg1NjA5_b71c5a1b-249b-4a71-bf2e-373e4670f676"
      unitRef="usd">28705000</us-gaap:NetIncomeLoss>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="ie9471410f4ce4e7e94d5c43d7ad2f93d_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMS0xLTEtODU2MDM_c1bf0617-3c16-49cc-988c-46e1e78e0cd8"
      unitRef="shares">0</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="ie9471410f4ce4e7e94d5c43d7ad2f93d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMy0xLTEtODU2MDM_cc428246-97e4-4b57-b272-1941f9c3f2a7"
      unitRef="usd">0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="if22b21458e63480d9c747473d6c51e1f_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctNS0xLTEtODU2MDM_aa7e54d0-4e70-476a-89ea-237496373ca6"
      unitRef="shares">0</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="if22b21458e63480d9c747473d6c51e1f_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctNy0xLTEtODU2MDM_d71a463a-2200-41e1-985a-c4bfcbd70538"
      unitRef="usd">0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:SharesOutstanding
      contextRef="i86477079460742429112950b4be6c267_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctOS0xLTEtODU2MDc_2fee82ef-0653-462d-9fda-7b8995565e64"
      unitRef="shares">52705187</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i86477079460742429112950b4be6c267_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMTEtMS0xLTg1NjA3_2bd61ccb-227f-4c72-9910-99e64c45a48e"
      unitRef="usd">6000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i2fb4567bd8c4462580e39f6947856198_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMTMtMS0xLTg1NjA3_47f55dcb-69fb-48f5-9a69-b4521df76c71"
      unitRef="usd">-11486000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ia2d475c516f54ba5861ed34e0e6aeed0_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMTUtMS0xLTg1NjA3_71b18f94-5976-4035-96c7-ebe08fea3697"
      unitRef="usd">195677000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if84681bcb2bb47008d33348309af90c9_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMTctMS0xLTg1NjA3_439c2ab3-a4cb-40d9-9270-38657caab393"
      unitRef="usd">-9000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i60c67658a0854d22905d7d06967271bf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMTktMS0xLTg1NjA3_31269a0f-066b-47fc-977d-072eedb6b8af"
      unitRef="usd">128000000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85NC9mcmFnOmM5OGMyNzFmMjM2NTQ1MjA5MDA5YTRmOGYyMDFmYzE4L3RhYmxlOmFkNWM4NDUzZTAxYjRjZDc4Y2EyZDlmMjkwYjdkZWIzL3RhYmxlcmFuZ2U6YWQ1Yzg0NTNlMDFiNGNkNzhjYTJkOWYyOTBiN2RlYjNfMjctMjEtMS0xLTg1NjA3_ae79a8fd-abbf-42da-b57d-eda3eeaba33e"
      unitRef="usd">312188000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMy0xLTEtMS03NzkwOA_da09671d-ac0c-413c-a74d-84f05c1995cc"
      unitRef="usd">28705000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMy0zLTEtMS03NzkwOA_6e954951-3b91-4ebc-94b8-2d87727b82aa"
      unitRef="usd">56604000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMy01LTEtMS03NzkwOA_47ba0348-8a12-4108-bd42-b354d0e2fd21"
      unitRef="usd">26613000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherDepreciationAndAmortization
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNS0xLTEtMS03NzkwOA_af085086-53c1-4bf7-afaf-6cc8dd704256"
      unitRef="usd">34249000</us-gaap:OtherDepreciationAndAmortization>
    <us-gaap:OtherDepreciationAndAmortization
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNS0zLTEtMS03NzkwOA_377eb18f-d93f-48e7-9f93-3dbf54b70b64"
      unitRef="usd">23073000</us-gaap:OtherDepreciationAndAmortization>
    <us-gaap:OtherDepreciationAndAmortization
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNS01LTEtMS03NzkwOA_c767d5db-8299-4680-b410-fa283832e098"
      unitRef="usd">15743000</us-gaap:OtherDepreciationAndAmortization>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNy0xLTEtMS03NzkwOA_be36746d-3470-4b97-bf62-11a311725eb4"
      unitRef="usd">-5948000</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNy0zLTEtMS03NzkwOA_0942660a-be62-40dc-a817-c1a25bdd923c"
      unitRef="usd">5433000</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNy01LTEtMS03NzkwOA_0d8174bf-4b25-4ad0-b92b-bc9f1eb9a140"
      unitRef="usd">0</us-gaap:EquitySecuritiesFvNiUnrealizedGainLoss>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfOC0xLTEtMS03NzkwOA_ce879680-c3e9-46f2-936d-485aabeb2d90"
      unitRef="usd">20646000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfOC0zLTEtMS03NzkwOA_c4fe16ce-1cb5-42ee-ad1a-06e110e01d2e"
      unitRef="usd">14107000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfOC01LTEtMS03NzkwOA_3d1dbd96-ba54-4782-8b34-e66f96e271fc"
      unitRef="usd">3563000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfOS0xLTEtMS03NzkwOA_d440216c-ea47-4811-87bf-f87929358017"
      unitRef="usd">0</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfOS0zLTEtMS03NzkwOA_fa7d8483-bb2f-4012-a2c9-c35c8d155633"
      unitRef="usd">0</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfOS01LTEtMS03NzkwOA_7dde2b3b-4949-4efd-bf4c-ea0fc4181312"
      unitRef="usd">319000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTEtMS0xLTEtNzc5MDg_aaaef19c-02c7-4f81-a074-07ed87995635"
      unitRef="usd">-7166000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTEtMy0xLTEtNzc5MDg_f099b287-c9ef-4a23-9ac6-9aad49bd0fab"
      unitRef="usd">4753000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTEtNS0xLTEtNzc5MDg_d8a883be-3c4c-4ef2-a4d5-9d40b6253f39"
      unitRef="usd">2933000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTItMS0xLTEtNzc5MDg_3d9390fe-3702-49ef-8d9f-0fc10fc5a96c"
      unitRef="usd">577000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTItMy0xLTEtNzc5MDg_22f220fb-9882-4330-9caf-b2b7bb45151f"
      unitRef="usd">45000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTItNS0xLTEtNzc5MDg_a1f9000c-9c63-4555-b162-53e73a9bcffb"
      unitRef="usd">145000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <pubm:NonCashLeaseExpense
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTMtMS0xLTEtNzc5MDg_d16865ba-d408-47f2-a02f-dd3c1ee2744a"
      unitRef="usd">5831000</pubm:NonCashLeaseExpense>
    <pubm:NonCashLeaseExpense
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTMtMy0xLTEtNzc5MDg_bdb8a290-efb6-4813-9700-468a0972984a"
      unitRef="usd">2042000</pubm:NonCashLeaseExpense>
    <pubm:NonCashLeaseExpense
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTMtNS0xLTEtNzc5MDg_b91e8fad-7029-4526-9910-97a1d218e9de"
      unitRef="usd">0</pubm:NonCashLeaseExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTQtMS0xLTEtNzc5MDg_4a93200d-443a-4f6e-add9-905a64751eb3"
      unitRef="usd">-90000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTQtMy0xLTEtNzc5MDg_385ea71b-a48b-4d38-a15b-fe2de26cdd21"
      unitRef="usd">-45000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTQtNS0xLTEtNzc5MDg_16ef04f7-d11e-43d3-b808-594d56a45da6"
      unitRef="usd">-189000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTYtMS0xLTEtNzc5MDg_bddee385-88b0-4a97-8190-e1afaac17553"
      unitRef="usd">24408000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTYtMy0xLTEtNzc5MDg_40422065-ffa6-4ed2-8947-b07dc96a23fa"
      unitRef="usd">67405000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTYtNS0xLTEtNzc5MDg_4cd4cfa1-9724-43b4-8f72-a567229cae20"
      unitRef="usd">102175000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTctMS0xLTEtNzc5MDg_a514fe3e-3d9e-448f-ac24-b9b264dbedc3"
      unitRef="usd">1595000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTctMy0xLTEtNzc5MDg_7505f840-b67e-4705-b205-260c71f0cb24"
      unitRef="usd">7681000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTctNS0xLTEtNzc5MDg_4b932aef-2ec2-4cf1-8d5d-d32c71c10736"
      unitRef="usd">2801000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTgtMS0xLTEtNzc5MDg_1058aa59-171a-4e5b-9f05-6b5f800e3277"
      unitRef="usd">29763000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTgtMy0xLTEtNzc5MDg_7ef738d7-59fa-4bca-a470-82edb16b0c28"
      unitRef="usd">68301000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTgtNS0xLTEtNzc5MDg_14907a5a-4150-4c7f-911d-6f2df064144e"
      unitRef="usd">77357000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTktMS0xLTEtNzc5MDg_95b72a34-9381-4a07-87bf-26819e7ed980"
      unitRef="usd">-1024000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTktMy0xLTEtNzc5MDg_5541f3a6-69b5-437c-8630-acb32e287f6d"
      unitRef="usd">3530000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMTktNS0xLTEtNzc5MDg_7b552f47-3b10-4569-907f-8901159a9dfb"
      unitRef="usd">3452000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOperatingLeaseLiability
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjAtMS0xLTEtNzc5MDg_8017fde1-0689-4d84-8beb-a810583bc957"
      unitRef="usd">-5539000</us-gaap:IncreaseDecreaseInOperatingLeaseLiability>
    <us-gaap:IncreaseDecreaseInOperatingLeaseLiability
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjAtMy0xLTEtNzc5MDg_7cbbd536-803c-4e91-853e-3df15155a0c8"
      unitRef="usd">-2283000</us-gaap:IncreaseDecreaseInOperatingLeaseLiability>
    <us-gaap:IncreaseDecreaseInOperatingLeaseLiability
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjAtNS0xLTEtNzc5MDg_0c904050-3fab-4ab3-a5b0-cd0919cd631f"
      unitRef="usd">0</us-gaap:IncreaseDecreaseInOperatingLeaseLiability>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjEtMS0xLTEtNzc5MDg_9dc9c563-b9e8-4b4e-9f9a-c8faadc3a06a"
      unitRef="usd">2289000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjEtMy0xLTEtNzc5MDg_6b765432-08e5-4ecf-9041-9bf3fd608c81"
      unitRef="usd">-927000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjEtNS0xLTEtNzc5MDg_b0e992ff-ca6c-4dec-a9e9-e07c4e212cc3"
      unitRef="usd">-718000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjItMS0xLTEtNzc5MDg_128fc9a8-aca1-4003-94c5-b640caeec2f5"
      unitRef="usd">87212000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjItMy0xLTEtNzc5MDg_2fdfa072-db44-40d3-b1fb-e4ad78f37b53"
      unitRef="usd">88681000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjItNS0xLTEtNzc5MDg_439194b5-c946-4eb5-8605-762a3f554075"
      unitRef="usd">24330000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjQtMS0xLTEtNzc5MDg_b4816d4b-3e83-4581-b5ef-5a1a888a005a"
      unitRef="usd">35869000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjQtMy0xLTEtNzc5MDg_ff2b5625-7b07-46a7-bea5-b01a1f7cda27"
      unitRef="usd">30432000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjQtNS0xLTEtNzc5MDg_f445cc2a-9f75-4ca4-b44a-91b90372864d"
      unitRef="usd">24177000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToDevelopSoftware
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjUtMS0xLTEtNzc5MDg_039f8a67-6e63-49ca-b5f9-c44bedb3141c"
      unitRef="usd">13024000</us-gaap:PaymentsToDevelopSoftware>
    <us-gaap:PaymentsToDevelopSoftware
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjUtMy0xLTEtNzc5MDg_cdb62a31-9028-4d7a-80bc-db9c0bcbafcc"
      unitRef="usd">8929000</us-gaap:PaymentsToDevelopSoftware>
    <us-gaap:PaymentsToDevelopSoftware
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjUtNS0xLTEtNzc5MDg_3a3d5dd0-79bc-443b-a884-5733e41c7502"
      unitRef="usd">7226000</us-gaap:PaymentsToDevelopSoftware>
    <us-gaap:PaymentsToAcquireMarketableSecurities
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjYtMS0xLTEtNzc5MDg_8a426919-4330-44fe-9651-d7f0229b05b0"
      unitRef="usd">137793000</us-gaap:PaymentsToAcquireMarketableSecurities>
    <us-gaap:PaymentsToAcquireMarketableSecurities
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjYtMy0xLTEtNzc5MDg_42b18336-e145-47c3-8d24-f7f94a01f102"
      unitRef="usd">90562000</us-gaap:PaymentsToAcquireMarketableSecurities>
    <us-gaap:PaymentsToAcquireMarketableSecurities
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjYtNS0xLTEtNzc5MDg_107cd861-00f6-4392-ba9b-7337db489de2"
      unitRef="usd">36704000</us-gaap:PaymentsToAcquireMarketableSecurities>
    <us-gaap:ProceedsFromSaleOfHeldToMaturitySecurities
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjctMS0xLTEtNzc5MDg_6e2549c3-1644-46d0-8435-3baa27ada6bf"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfHeldToMaturitySecurities>
    <us-gaap:ProceedsFromSaleOfHeldToMaturitySecurities
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjctMy0xLTEtNzc5MDg_62a90a30-7482-4205-a4db-e0085aa62e9b"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfHeldToMaturitySecurities>
    <us-gaap:ProceedsFromSaleOfHeldToMaturitySecurities
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjctNS0xLTEtNzc5MDg_41c65d73-f053-4bd3-9e1f-32d9257b437f"
      unitRef="usd">2295000</us-gaap:ProceedsFromSaleOfHeldToMaturitySecurities>
    <us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjgtMS0xLTEtNzc5MDg_7ee5d4e5-093a-4dfe-bb4c-e68a3e448322"
      unitRef="usd">133400000</us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities>
    <us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjgtMy0xLTEtNzc5MDg_621baa37-f872-4868-a0e7-a60b78226987"
      unitRef="usd">33200000</us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities>
    <us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjgtNS0xLTEtNzc5MDg_89c1df1b-8b7f-4f43-8600-c5296cfe0df1"
      unitRef="usd">35950000</us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities>
    <us-gaap:PaymentsToAcquireEquitySecuritiesFvNi
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjktMS0xLTEtNzc5MDg_9e8a5849-bd61-4a13-83a9-f68d2fd2710d"
      unitRef="usd">0</us-gaap:PaymentsToAcquireEquitySecuritiesFvNi>
    <us-gaap:PaymentsToAcquireEquitySecuritiesFvNi
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjktMy0xLTEtNzc5MDg_f3356fcb-c1e5-4086-92d1-72033192bf0d"
      unitRef="usd">0</us-gaap:PaymentsToAcquireEquitySecuritiesFvNi>
    <us-gaap:PaymentsToAcquireEquitySecuritiesFvNi
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjktNS0xLTEtNzc5MDg_36d68ae2-00cf-4469-8775-0b878d321720"
      unitRef="usd">15000</us-gaap:PaymentsToAcquireEquitySecuritiesFvNi>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjgtMS0xLTEtODU2MTM_5e1df470-f9eb-4af5-9dc7-f9fde5d6e406"
      unitRef="usd">28085000</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjgtMy0xLTEtODU2MTM_533d927d-a71e-45d7-9b26-774641f58e4e"
      unitRef="usd">0</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMjgtNS0xLTEtODU2MTU_22f51665-c777-4c74-ad6e-4fa2f89f7f31"
      unitRef="usd">0</us-gaap:PaymentsToAcquireBusinessesNetOfCashAcquired>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzAtMS0xLTEtNzc5MDg_2747e9dd-d734-4988-9d27-41e6da6f0108"
      unitRef="usd">-81371000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzAtMy0xLTEtNzc5MDg_8c28976a-a4d5-4cfc-957e-f2f9c01500c5"
      unitRef="usd">-96723000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzAtNS0xLTEtNzc5MDg_a9454a65-5128-46a7-95eb-bc68f27003f1"
      unitRef="usd">-29877000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceInitialPublicOffering
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzItMS0xLTEtNzc5MDg_b601fe31-a85b-4678-a94d-69a515a3266a"
      unitRef="usd">0</us-gaap:ProceedsFromIssuanceInitialPublicOffering>
    <us-gaap:ProceedsFromIssuanceInitialPublicOffering
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzItMy0xLTEtNzc5MDg_0952d191-2f2f-466c-98d1-ceffbc7843d6"
      unitRef="usd">-806000</us-gaap:ProceedsFromIssuanceInitialPublicOffering>
    <us-gaap:ProceedsFromIssuanceInitialPublicOffering
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzItNS0xLTEtNzc5MDg_26f1f6c9-baf0-4a20-89b8-2a5beea5ef34"
      unitRef="usd">45811000</us-gaap:ProceedsFromIssuanceInitialPublicOffering>
    <pubm:ProceedsFromRepaymentsOfStockholdersNotesReceivable
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzMtMS0xLTEtNzc5MDg_7288890c-81bd-4e4c-a430-baaf41ac53a0"
      unitRef="usd">0</pubm:ProceedsFromRepaymentsOfStockholdersNotesReceivable>
    <pubm:ProceedsFromRepaymentsOfStockholdersNotesReceivable
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzMtMy0xLTEtNzc5MDg_4e5f98a6-5081-4b44-b451-b8e74b1ff8a9"
      unitRef="usd">0</pubm:ProceedsFromRepaymentsOfStockholdersNotesReceivable>
    <pubm:ProceedsFromRepaymentsOfStockholdersNotesReceivable
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzMtNS0xLTEtNzc5MDg_00fd871d-fa76-473f-bf07-a57cdb559f32"
      unitRef="usd">4268000</pubm:ProceedsFromRepaymentsOfStockholdersNotesReceivable>
    <us-gaap:ProceedsFromStockPlans
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzQtMS0xLTEtNzc5MDg_b02a5e81-598d-429c-bf10-5524ba40bda6"
      unitRef="usd">2960000</us-gaap:ProceedsFromStockPlans>
    <us-gaap:ProceedsFromStockPlans
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzQtMy0xLTEtNzc5MDg_8093128b-6f80-42e9-875b-d9637dbb399f"
      unitRef="usd">4804000</us-gaap:ProceedsFromStockPlans>
    <us-gaap:ProceedsFromStockPlans
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzQtNS0xLTEtNzc5MDg_00793b08-abdb-4f90-a814-8507ccdd834b"
      unitRef="usd">0</us-gaap:ProceedsFromStockPlans>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzUtMS0xLTEtNzc5MDg_2121e341-67c0-4af2-805e-db504ae6d66a"
      unitRef="usd">1195000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzUtMy0xLTEtNzc5MDg_acbbdc57-1650-4bc2-a85d-aec4dc279168"
      unitRef="usd">5423000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzUtNS0xLTEtNzc5MDg_1d97312f-4e8d-4af3-885a-0e718f1a5b3e"
      unitRef="usd">2409000</us-gaap:ProceedsFromStockOptionsExercised>
    <pubm:PaymentsForCancelationOfStockOptions
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzYtMS0xLTEtNzc5MDg_954367bd-605d-4e76-a200-c35f27c9f8ae"
      unitRef="usd">119000</pubm:PaymentsForCancelationOfStockOptions>
    <pubm:PaymentsForCancelationOfStockOptions
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzYtMy0xLTEtNzc5MDg_6a124a79-28d3-4d8f-80ad-be56a867f39c"
      unitRef="usd">10000</pubm:PaymentsForCancelationOfStockOptions>
    <pubm:PaymentsForCancelationOfStockOptions
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzYtNS0xLTEtNzc5MDg_5ddb5d31-c998-4c59-9519-6285a1d75d7e"
      unitRef="usd">0</pubm:PaymentsForCancelationOfStockOptions>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzctMS0xLTEtNzc5MDg_5b13fda6-6764-4a0f-9a6e-e7b618d3028c"
      unitRef="usd">0</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzctMy0xLTEtNzc5MDg_641be637-7e20-489d-a57c-ea0661022f40"
      unitRef="usd">52000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzctNS0xLTEtNzc5MDg_79357404-aa8f-445b-b116-020e58c492a8"
      unitRef="usd">3000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzgtMS0xLTEtNzc5MDg_cfde8c12-f872-49d5-827f-3b44b295ee5d"
      unitRef="usd">4036000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzgtMy0xLTEtNzc5MDg_f75d099a-f4bd-4751-ab2a-cd2a94c1a7fc"
      unitRef="usd">9359000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzgtNS0xLTEtNzc5MDg_53a93700-bad6-4a6f-aac9-376fe05d85cc"
      unitRef="usd">52485000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzktMS0xLTEtNzc5MDg_ed633bd2-a048-49a0-8754-aa807e2964f8"
      unitRef="usd">9877000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzktMy0xLTEtNzc5MDg_91a07f7a-6e1d-4e8c-9a69-0b3afebad5f4"
      unitRef="usd">1317000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfMzktNS0xLTEtNzc5MDg_9a53e6c0-988c-4c7b-9b0d-a785f47a4e6c"
      unitRef="usd">46938000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDAtMS0xLTEtNzc5MDg_97469675-0a00-4946-965e-fb657f58ddc9"
      unitRef="usd">82505000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDAtMy0xLTEtNzc5MDg_56801c64-7a06-4790-849b-4f866081265d"
      unitRef="usd">81188000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i4d92a3b2acb54d89ae14c1fdee13f997_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDAtNS0xLTEtNzc5MDg_ba277ade-d813-4deb-87d8-88f31813fbf3"
      unitRef="usd">34250000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDEtMS0xLTEtNzc5MDg_3fe398b6-f881-4d95-b1d6-8ea5f8e9fb00"
      unitRef="usd">92382000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDEtMy0xLTEtNzc5MDg_8dfc9225-92a2-4cf0-90ec-8a53b31f6681"
      unitRef="usd">82505000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDEtNS0xLTEtNzc5MDg_858feb35-82ab-4479-b2f3-20b3ddbb4554"
      unitRef="usd">81188000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDMtMS0xLTEtNzc5MDg_db509baf-e1fd-420a-b0b5-f317387258a0"
      unitRef="usd">9190000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDMtMy0xLTEtNzc5MDg_d9d23cf0-694f-4d5d-b169-8c2d51d19ec6"
      unitRef="usd">6786000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDMtNS0xLTEtNzc5MDg_4c888839-5b05-4b1c-9bf2-ed808955d9f6"
      unitRef="usd">2691000</us-gaap:IncomeTaxesPaidNet>
    <pubm:StockBasedCompensationCapitalizedAsInternalUseSoftwareCosts
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDUtMS0xLTEtNzc5MDg_5395f516-a120-4fbb-8203-de46e67d9b21"
      unitRef="usd">1475000</pubm:StockBasedCompensationCapitalizedAsInternalUseSoftwareCosts>
    <pubm:StockBasedCompensationCapitalizedAsInternalUseSoftwareCosts
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDUtMy0xLTEtNzc5MDg_fff02a37-0f43-4a43-9436-ab4cb2ab7fee"
      unitRef="usd">903000</pubm:StockBasedCompensationCapitalizedAsInternalUseSoftwareCosts>
    <pubm:StockBasedCompensationCapitalizedAsInternalUseSoftwareCosts
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDUtNS0xLTEtNzc5MDg_2c63cb96-5ccc-4e0b-b903-d44e251d3058"
      unitRef="usd">40000</pubm:StockBasedCompensationCapitalizedAsInternalUseSoftwareCosts>
    <pubm:PropertyAndEquipmentIncludedInAccountsPayableAndAccruedExpenses
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDYtMS0xLTEtNzc5MDg_c827cd17-763e-4a97-999d-7f7fa3010f54"
      unitRef="usd">749000</pubm:PropertyAndEquipmentIncludedInAccountsPayableAndAccruedExpenses>
    <pubm:PropertyAndEquipmentIncludedInAccountsPayableAndAccruedExpenses
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDYtMy0xLTEtNzc5MDg_f36582a0-b480-4fd3-bf78-1b3820d73d67"
      unitRef="usd">49000</pubm:PropertyAndEquipmentIncludedInAccountsPayableAndAccruedExpenses>
    <pubm:PropertyAndEquipmentIncludedInAccountsPayableAndAccruedExpenses
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDYtNS0xLTEtNzc5MDg_7e2923df-59fc-46e5-8b2b-c6d05f42ac81"
      unitRef="usd">111000</pubm:PropertyAndEquipmentIncludedInAccountsPayableAndAccruedExpenses>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDctMS0xLTEtNzc5MDg_b7981bcc-0eda-4fae-b9ac-83d77d5caa32"
      unitRef="usd">1796000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDctMy0xLTEtNzc5MDg_43958600-e0a4-4a31-aea0-95453c88b037"
      unitRef="usd">1794000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDctNS0xLTEtNzc5MDg_8e97cd6f-dbb8-437a-a701-ea97f80b7985"
      unitRef="usd">1336000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <pubm:DeferredOfferingCostsIncurredDuringThePeriodIncludedInAccountsPayableAndAccruedExpenses
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDktMS0xLTEtNzc5MDg_9d3c6b2d-ce19-46c5-91e7-a136ed6bd629"
      unitRef="usd">0</pubm:DeferredOfferingCostsIncurredDuringThePeriodIncludedInAccountsPayableAndAccruedExpenses>
    <pubm:DeferredOfferingCostsIncurredDuringThePeriodIncludedInAccountsPayableAndAccruedExpenses
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDktMy0xLTEtNzc5MDg_7a3be000-2a1c-4588-9772-259317b69c86"
      unitRef="usd">0</pubm:DeferredOfferingCostsIncurredDuringThePeriodIncludedInAccountsPayableAndAccruedExpenses>
    <pubm:DeferredOfferingCostsIncurredDuringThePeriodIncludedInAccountsPayableAndAccruedExpenses
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDktNS0xLTEtNzc5MDg_31dbc34b-f1dc-4fb9-b7b2-1153f16ab1ac"
      unitRef="usd">806000</pubm:DeferredOfferingCostsIncurredDuringThePeriodIncludedInAccountsPayableAndAccruedExpenses>
    <pubm:NoncashOrPartNoncashAcquisitionIndemnificationClaimsHoldback
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDgtMS0xLTEtODU2MjA_ec3f566f-3656-4dc0-bdad-4c147551b3de"
      unitRef="usd">2148000</pubm:NoncashOrPartNoncashAcquisitionIndemnificationClaimsHoldback>
    <pubm:NoncashOrPartNoncashAcquisitionIndemnificationClaimsHoldback
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDgtMy0xLTEtODU2MjA_c0df5a69-9b94-406d-8f16-a3cfb454dccb"
      unitRef="usd">0</pubm:NoncashOrPartNoncashAcquisitionIndemnificationClaimsHoldback>
    <pubm:NoncashOrPartNoncashAcquisitionIndemnificationClaimsHoldback
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl85Ny9mcmFnOjA4MzlhYTU0Y2ZiYTRiZGRhNjQwNzlhNTkwNzM2ZDMxL3RhYmxlOjI1NjIzODliYmI4MzRmNTE5OTY4ODAyYjUxZWEyZDAzL3RhYmxlcmFuZ2U6MjU2MjM4OWJiYjgzNGY1MTk5Njg4MDJiNTFlYTJkMDNfNDgtNS0xLTEtODU2MjI_69087762-0721-4085-a823-04f7327d5c91"
      unitRef="usd">0</pubm:NoncashOrPartNoncashAcquisitionIndemnificationClaimsHoldback>
    <us-gaap:NatureOfOperations
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDMvZnJhZzozMzQxOWRiYjk1MDk0NzVkOWViZmI5ZDlhOGI3NzM5NS90ZXh0cmVnaW9uOjMzNDE5ZGJiOTUwOTQ3NWQ5ZWJmYjlkOWE4Yjc3Mzk1XzU3Mg_067cdbd9-7270-4737-b52a-b43e26801c72">Organization and Description of BusinessPubMatic, Inc. (together with its subsidiaries, the &#x201c;Company&#x201d; or &#x201c;PubMatic&#x201d;) was founded in 2006. The Company has offices in California, New York, Europe, Asia, and Australia. The Company provides a specialized cloud infrastructure platform that enables real-time programmatic advertising transactions. The purpose-built technology and infrastructure provides superior outcomes for both publishers and advertisers leveraging an efficient design, machine learning, and data processing capabilities, with customer alignment and global omnichannel reach.</us-gaap:NatureOfOperations>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjM2_f9461d74-a6f5-4720-8eff-80776de50e18">Basis of Presentation and Summary of Significant Accounting Policies&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Fiscal Year&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s fiscal year ends on December 31. References to fiscal year 2022, for example, refer to the fiscal year ended December&#160;31, 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Basis of Presentation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The accompanying consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#x201c;GAAP&#x201d;). The accompanying consolidated financial statements include the accounts of PubMatic, Inc. and its wholly-owned subsidiaries. All intercompany accounts and transactions have been eliminated in consolidation. Certain prior period amounts reported in our consolidated financial statements and notes thereto have been reclassified to conform to the current period presentation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Use of Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of the consolidated financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts of assets and liabilities reported, disclosures about contingent assets and liabilities, and reported amounts of revenue and expenses.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Significant items subject to such estimates include: revenue recognition criteria, including the determination of revenue reporting as net versus gross in the Company&#x2019;s revenue arrangements, internal use software development costs, stock-based compensation, acquisition-related intangible assets, and income taxes, including the valuation reserve on deferred tax assets. 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 and assumptions. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Due to the inherent uncertainty involved in making assumptions and estimates, events and changes in circumstances arising after December&#160;31, 2022, including those resulting from the impacts of the COVID-19 pandemic and macroeconomic factors, may result in actual outcomes that differ from those contemplated by the Company&#x2019;s assumptions and estimates. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Concentration of Credit Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that potentially subject the Company to concentration of credit risk consist principally of cash and cash equivalents, marketable securities, and accounts receivable. The Company maintains its cash and cash equivalents with financial institutions in amounts which exceed Federal Deposit Insurance Corporation limits.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s investment policy limits investments to certain types of securities issued by the U.S. government and its agencies and institutions with investment-grade credit ratings and places restrictions on maturities and concentration by type and issuer. The primary objective of its investment activities is to preserve principal while maximizing income without significantly increasing risk.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company considers all highly liquid investments with an original maturity at the date of purchase of three months or less to be cash equivalents.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Marketable Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company classifies marketable securities as available-for-sale at the time of purchase and reevaluates such classification at each balance sheet date. The Company may sell these securities at any time for use in current operations even if they have not yet reached maturity. As a result, the Company classifies its marketable securities, including those with maturities beyond twelve months, as current assets in the consolidated balance sheets. These marketable securities are carried at fair value and unrealized gains and losses are recorded in other comprehensive income, which is reflected as a component of stockholders&#x2019; equity. These marketable securities are assessed as to whether those with unrealized loss positions are other than temporarily impaired. The Company considers impairments to be other than temporary if they are related to deterioration in credit risk or if it is likely the securities will be sold before the recovery of their cost basis. Realized gains and losses from the sale of marketable securities and declines in value deemed to be other than temporary are determined based on the specific identification method. Realized gains and losses, and any expected credit losses, are reported in other income (expense), net in the consolidated statements of operations and comprehensive income.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Fair Value of Financial Instruments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments consist of cash equivalents, marketable securities, non-marketable equity investment, accounts receivable, accounts payable, and accrued liabilities. Cash equivalents and marketable securities are remeasured at fair value at the end of every period. Non-marketable equity investment is remeasured at fair value when there has been an observable price change from an orderly transaction for identical or similar investments of the same issuer. Accounts receivable, accounts payable and accrued liabilities are stated at their carrying value, which approximates fair value due to the short time to the expected receipt or payment.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Accounts Receivable and Allowance for Credit Losses&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accounts receivable are recorded at the invoiced amount, are unsecured, and do not bear interest. The allowance for credit losses is based on the best estimate of the amount of probable credit losses in existing accounts receivable. The allowance for credit losses is determined based on historical collection experience and the review in each period of the status of the then outstanding accounts receivable, while taking into consideration current customer information, collection history, and other relevant data. The Company reviews the allowance for credit losses on a quarterly basis. Account balances are written off against the allowance when the Company believes it is probable the receivable will not be recovered. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the changes in the allowance for credit losses (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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 2px 10pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Allowance for credit losses, beginning balance&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,989&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,051&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Provision&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;319&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Write-offs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(224)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(381)&lt;/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 10pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Allowance for credit losses, ending balance&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,989&#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;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Property and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment, including leasehold improvements, are stated at cost, less accumulated depreciation and amortization. Depreciation is computed using the straight-line method over the estimated useful lives of the related assets, generally three years. Leasehold improvements are amortized on a straight-line basis over the shorter of the estimated useful lives of the assets or the remaining lease term.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Internal Use Software Development Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company capitalizes certain internal use software development costs associated with creating and enhancing internal use software related to its platform and technology infrastructure. These costs include personnel and related employee benefits expenses for employees who are directly associated with and who devote time to software projects, and external direct costs of materials and services consumed in developing or obtaining the software. Software development costs that do not meet the criteria for capitalization are expensed as incurred and recorded in technology and development expenses in the consolidated statements of operations and comprehensive income.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Software development activities generally consist of three stages, (i) the planning stage, (ii) the application and infrastructure development stage, and (iii) the post implementation stage. Costs incurred in the planning and post implementation stages of software development, including costs associated with the post configuration training and repairs and maintenance of the developed technologies, are expensed as incurred. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company capitalizes costs associated with software developed for internal use when both the preliminary project stage is completed and management has authorized further funding for the completion of the project. Costs incurred in the application and infrastructure development stages, including significant enhancements and upgrades, are capitalized. Capitalization ends once a project is substantially complete and the software and technologies are ready for their intended purpose. Internal use software development costs are amortized using a straight-line method over the estimated useful life of &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzc3MzM_283f5087-f90b-4252-9136-302824a2a991"&gt;two&lt;/span&gt; to five years, commencing when the software is ready for its intended use.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We determine if an arrangement is a lease at inception. The Company&#x2019;s leases may include a non-lease component representing additional services transferred to the Company, such as common area maintenance for real estate. The Company accounts for each separate lease component and the non-lease components associated with that lease component as a single lease component. As such, minimum lease payments include fixed payments for non-lease components within a lease agreement but exclude variable lease payments not dependent on an index or rate, such as common area maintenance, operating expenses, utilities, or other costs that are subject to fluctuation from period to period. Non-lease components that are variable in nature are recorded as variable lease expense in the period incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company made an accounting policy election under Topic 842 not to recognize right-of-use (ROU) assets and lease liabilities for leases with a term of twelve months or less. For all other leases, the Company recognizes ROU assets and lease liabilities based on the present value of lease payments over the lease term at the commencement date of the lease. The ROU assets also include any initial direct costs incurred and lease payments made at or before the commencement date and are reduced by any lease incentives.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company uses its incremental borrowing rate to determine the present value of lease payments, as the Company&#x2019;s leases do not have a readily determinable implicit discount rate. The incremental borrowing rate is the rate of interest the Company would have to pay to borrow on a collateralized basis over a similar term and amount in a similar economic environment. Judgement is applied in assessing factors such as Company-specific credit risk, lease term, nature and quality of the underlying collateral, currency, and economic environment in determining the incremental borrowing rate to apply to each lease.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease assets and liabilities are included on our consolidated balance sheets. Finance lease assets are included in property, equipment and software, net. Finance lease liabilities are included in accrued liabilities or other liabilities, non-current.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Impairment of Long-Lived Assets&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company continually monitors events and changes in circumstances that could indicate that carrying amounts of its long-lived assets, including property and equipment and intangible assets may not be recoverable. When such events or changes in circumstances occur, the Company assesses the recoverability of long-lived assets by determining whether the carrying value of such assets will be recovered through their undiscounted expected future cash flows. If the future undiscounted cash flows are less than the carrying value of these assets, the Company recognizes an impairment loss based on the excess of the carrying value over the fair value of the assets. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Business Combinations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company allocates the purchase consideration for acquired companies to tangible and intangible assets acquired and liabilities assumed based on their estimated fair values as of the acquisition date, with the excess recorded to goodwill. These estimates are inherently uncertain and subject to refinement. During the measurement period, which may be up to one year from the acquisition date, the Company may record adjustments to the fair value of these tangible and intangible assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the fair value of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments are recorded to the consolidated statements of operations.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Acquisition-related Intangible Assets and Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Acquisition-related intangible assets with finite lives are amortized over their estimated useful lives on a straight-line basis. Goodwill amounts are not amortized. Acquisition-related intangible assets and goodwill are tested for impairment at least annually or more frequently if events or changes in circumstances indicate that the acquisition-related intangible assets or goodwill may be impaired.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Events or changes in circumstances which could trigger an impairment review include a significant adverse change in legal factors or in the business climate, an adverse action or assessment by a regulator, unanticipated competition, a loss of key personnel, significant changes in the manner of the Company&#x2019;s use of the acquired assets, or the strategy for the Company&#x2019;s overall business, significant negative industry or economic trends, or significant underperformance relative to expected historical or projected future results of operations. The Company has not recorded any acquisition-related intangible assets or goodwill impairment to date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Impairment of Equity Investment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Prior to December 2021, the Company measured its equity investment in a privately held company in which the Company did not own a controlling interest or exercise significant influence using the measurement alternative for equity securities without a readily determinable fair value. Under the measurement alternative, the carrying value is measured at cost, less any impairment, plus or minus changes resulting from observable price changes in orderly transactions for identical or similar investments of the same issuer. During December 2021, an observable transaction occurred for the Company&#x2019;s equity investment wherein the privately held company merged with a publicly held company whose shares of common stock were publicly quoted in the Over-the-Counter (&#x201c;OTC&#x201d;) market. Therefore, the equity investment had a readily determinable fair value as of December 31, 2021 and was subsequently measured at fair value in the Company&#x2019;s consolidated balance sheets with unrealized gains and losses included in other income (expense), net in the Company&#x2019;s consolidated statements of operations. However, during September 2022, the Company concluded there was no longer a readily determinable fair value for its equity investment because the shares were no longer publicly quoted pursuant to U.S. Securities and Exchange Commission (&#x201c;SEC&#x201d;) Rule 15c2-11. The Company evaluated the measurement guidance for equity securities without a readily determinable fair value and performed a qualitative assessment of various impairment indicators and concluded the equity investment was fully impaired as of September 30, 2022 and December 31, 2022. As a result, the Company recognized an impairment loss equal to the difference between the fair value of the investment and its carrying amount. An impairment charge of $5.9 million was recorded within other income (expense), net in the Company&#x2019;s consolidated statements of operations for the year ended December 31, 2022. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes revenue through the following steps:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Identification of a contract with a customer;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Identification of the performance obligations in the contract;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Determination of the transaction price;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Allocation of the transaction price to the performance obligations in the contract; and&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Recognition of revenue when or as the performance obligations are satisfied.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company refers to its publishers, app developers, and channel partners collectively as its publishers. The Company generates revenue through the monetization of publisher ad impressions on its platform. The Company&#x2019;s platform allows publishers to sell, in real time, ad impressions to buyers and provides automated inventory management and monetization tools to publishers across various device types and digital ad formats. The Company charges publishers a fee, which is typically a percentage of the value of the ad impressions monetized through the Company&#x2019;s platform. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company maintains agreements with each publisher and buyer in the form of written service agreements, which set out the terms of the relationship, including payment terms (typically ninety days or less) and access to its platform. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company invoices buyers for publisher digital advertising inventory purchased through its platform. The Company recognizes revenue when a bid is won and a buyer purchases inventory on its platform. The Company estimates and records reductions to revenue for rebates related to supply path optimization agreements based on expected volumes during the incentive term.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The determination as to whether revenue should be reported gross of amounts billed to buyers (gross basis) or net of payments to publishers (net basis) requires significant judgment, and is based on the Company&#x2019;s assessment of whether it is acting as the principal or an agent in the transaction. The Company has determined that it does not act as the principal in the purchase and sale of digital advertising inventory because it does not control the advertising inventory and it does not set the price which is the result of an auction within the marketplace. Based on these and other factors, the Company reports revenue on a net basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company generally invoices buyers at the end of each month for the full purchase price of ad impressions monetized in that month. Accounts receivable are recorded at the amount of gross billings for the amounts the Company is responsible to collect, and accounts payable are recorded at the net amount payable to publishers. Accordingly, both accounts receivable and accounts payable appear large in relation to revenue reported on a net basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cost of Revenue &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of revenue consists primarily of data center co-location costs, depreciation expense related to hardware supporting the Company&#x2019;s platform, amortization expense related to capitalized internal use software development costs, personnel costs, and allocated facilities costs. Personnel costs include salaries, bonuses, stock-based compensation, and employee benefit costs, and are primarily attributable to the Company&#x2019;s network operations group which maintains the Company&#x2019;s servers and the Company&#x2019;s client operations group, which is responsible for integration of new publishers and buyers and providing customer support for existing customers.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Technology and Development Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Technology and development expenses consist primarily of personnel costs, including salaries, bonuses, stock-based compensation, and employee benefits costs, allocated facilities costs, and professional services. These expenses include costs incurred in the development, implementation and maintenance of internal use software, including platform and related infrastructure. Technology and development costs are expensed as incurred, except to the extent that such costs are associated with internal use software development that meets the criteria for capitalization. The Company amortizes internal use software development costs that relate to its revenue producing activities on its platform to cost of revenue. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Advertising Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Advertising costs are expensed as incurred and are included in sales and marketing expenses. The Company&#x2019;s advertising costs recorded during the years ended December&#160;31, 2022, 2021 and 2020 were $0.3&#160;million, $0.5 million and $0.5 million, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; Stock-based compensation expense related to stock awards, including stock options, restricted stock units (&#x201c;RSUs&#x201d;), and the employee stock purchase plan (the &#x201c;ESPP&#x201d;), is measured based on the fair value of the awards granted and recognized as an expense on a straight-line basis over the requisite service period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of each option and ESPP award is estimated on the grant date using the Black-Scholes option pricing model. The Black-Scholes option pricing model requires the input of highly subjective assumptions, including the fair value of the underlying common stock, the expected term of the award, the expected volatility of the price of our common stock, risk-free interest rates, and the expected dividend yield of our common stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of each RSU award is based on the fair value of the underlying common stock as of the grant date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The assumptions used to determine the fair value of the stock awards represent management&#x2019;s best estimates. These estimates involve inherent uncertainties and the application of management&#x2019;s judgment. The Company accounts for forfeitures as they occur instead of estimating the number of awards expected to be forfeited. For additional information regarding stock-based compensation and the assumptions used for determining the fair value of stock options and ESPP awards, refer to Note 10&#x2014;Stockholders&#x2019; Equity and Equity Incentive Plans.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Foreign Currency Translation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The functional currency of the Company&#x2019;s foreign subsidiaries is the U.S. dollar. Accordingly, all monetary assets and liabilities of these subsidiaries are remeasured at the current exchange rate at each balance sheet date, nonmonetary assets and liabilities are measured at historical rates, and revenue and expenses are remeasured at average exchange rates during the period. Transaction gains and losses are included in other income (expense), net in the accompanying consolidated statements of operations. The Company&#x2019;s net foreign currency gain (losses) recorded during the years ended December&#160;31, 2022, 2021 and 2020 were $(0.7)&#160;million, $(0.1) million, and $0.6 million respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company utilizes the asset and liability method under which deferred tax assets and liabilities arise from the temporary differences between the tax basis of an asset or liability and its reported amount in the consolidated financial statements, as well as from net operating loss and tax credit carryforwards. Deferred tax amounts are determined by using the tax rates expected to be in effect when the taxes will actually be paid or refunds received, as provided for under currently enacted tax law. A valuation allowance is established when necessary to reduce deferred tax assets to the amount expected to be realized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes the tax benefit from an uncertain tax position only if it is more likely than not that the tax position will be sustained on examination by the taxing authorities, based on the technical merits of the position. The tax benefits recognized in the consolidated financial statements from such positions are then measured based on the largest benefit that has a greater than 50% likelihood of being realized. The Company recognizes interest and penalties related to income tax matters as income tax expense.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Segment Information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating segments are components of an enterprise for which separate financial information is available and is evaluated regularly by the Company&#x2019;s chief operating decision maker in deciding how to allocate resources and assessing performance. The Company&#x2019;s chief operating decision maker is its Chief Executive Officer.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Chief Executive Officer reviews financial information presented on a consolidated basis, for purposes of allocating resources and evaluating financial performance. The Company has one business activity and there are no segment managers accountable for operations, operating results beyond revenue or gross profit, or plans for levels or components below the consolidated unit level. Accordingly, the Company has one single reporting segment.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Concentration of Revenue and Accounts Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company defines its revenue concentration based on revenue recognized from individual publishers. For the years ended December&#160;31, 2022, 2021 and 2020, one publisher represented 13%, 17% and 20% respectively, of the Company&#x2019;s revenue. As of December&#160;31, 2022, three buyers accounted for 33%, 15%, and 11%, respectively, of accounts receivable. As of December&#160;31, 2021, two buyers accounted for 29% and 19%, respectively, of accounts receivable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Net Income Per Share Attributable to Common Stockholders&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic and diluted net income per share attributable to Class A and Class B common stock is computed in conformity with the two-class method required for participating securities. The Company applies the two-class method to allocate earnings between common and other participating securities based on their participation rights. Prior to the conversion of preferred stock to common stock concurrent with the Company&#x2019;s IPO in December 2020 and because the holders of the Company&#x2019;s convertible preferred stock were entitled to participate in dividends, the Company allocated net income to common and preferred stock based on their respective rights to receive dividends, whether or not declared.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Distributed and undistributed earnings allocated to participating securities are subtracted from net income in determining net income attributable to common stockholders. Basic net income per share is computed by dividing net income attributable to common stockholders by the weighted-average number of shares of our Class A and Class B common stock outstanding.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The diluted net income per share attributable to common stockholders is computed by giving effect to all dilutive securities. Diluted net income per share attributable to common stockholders is computed by dividing the resulting net income attributable to common stockholders by the weighted-average number of fully diluted common shares outstanding. During the periods when there is a net loss attributable to common stockholders, potentially dilutive common stock equivalents have been excluded from the calculation of diluted net loss per share attributable to common stockholders as their effect is anti-dilutive.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In October 2021, the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) issued Accounting Standards Update (&#x201c;ASU&#x201d;) No. 2021-08, Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers, which requires contract assets and contract liabilities acquired in a business combination to be recognized and measured in accordance with Topic 606, Revenue from Contracts with Customers, as if the acquirer had originated the contracts. Under current GAAP, such assets and liabilities are recognized by the acquirer at fair value on the acquisition date. ASU 2021-08 is effective for the Company for interim and annual periods beginning after December 15, 2022 on a prospective basis, with early adoption permitted. The Company expects to adopt ASU 2021-08 in the first quarter of fiscal 2023. The Company does not expect the adoption of this guidance to have a material impact on its consolidated financial statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjEw_ec8fbb33-ac6e-4175-954a-098591ca4c44">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Basis of Presentation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The accompanying consolidated financial statements have been prepared in accordance with generally accepted accounting principles in the United States of America (&#x201c;GAAP&#x201d;). The accompanying consolidated financial statements include the accounts of PubMatic, Inc. and its wholly-owned subsidiaries. All intercompany accounts and transactions have been eliminated in consolidation. Certain prior period amounts reported in our consolidated financial statements and notes thereto have been reclassified to conform to the current period presentation.&lt;/span&gt;&lt;/div&gt;</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:UseOfEstimates
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjI2_308b2002-b50d-4634-b8fb-bc6eea1a6971">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Use of Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The preparation of the consolidated financial statements in conformity with GAAP requires management to make estimates and assumptions that affect the amounts of assets and liabilities reported, disclosures about contingent assets and liabilities, and reported amounts of revenue and expenses.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Significant items subject to such estimates include: revenue recognition criteria, including the determination of revenue reporting as net versus gross in the Company&#x2019;s revenue arrangements, internal use software development costs, stock-based compensation, acquisition-related intangible assets, and income taxes, including the valuation reserve on deferred tax assets. 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 and assumptions. &lt;/span&gt;&lt;/div&gt;Due to the inherent uncertainty involved in making assumptions and estimates, events and changes in circumstances arising after December&#160;31, 2022, including those resulting from the impacts of the COVID-19 pandemic and macroeconomic factors, may result in actual outcomes that differ from those contemplated by the Company&#x2019;s assumptions and estimates.</us-gaap:UseOfEstimates>
    <us-gaap:ConcentrationRiskCreditRisk
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjE0_5b125cb2-594d-411b-9aad-74bdc95105b8">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Concentration of Credit Risk&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments that potentially subject the Company to concentration of credit risk consist principally of cash and cash equivalents, marketable securities, and accounts receivable. The Company maintains its cash and cash equivalents with financial institutions in amounts which exceed Federal Deposit Insurance Corporation limits.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s investment policy limits investments to certain types of securities issued by the U.S. government and its agencies and institutions with investment-grade credit ratings and places restrictions on maturities and concentration by type and issuer. The primary objective of its investment activities is to preserve principal while maximizing income without significantly increasing risk.&lt;/span&gt;&lt;/div&gt;</us-gaap:ConcentrationRiskCreditRisk>
    <us-gaap:CashAndCashEquivalentsPolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjE5_6bec0b92-2c32-4cdc-9c42-ccfbb1ac7daa">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cash and Cash Equivalents&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company considers all highly liquid investments with an original maturity at the date of purchase of three months or less to be cash equivalents.&lt;/span&gt;&lt;/div&gt;</us-gaap:CashAndCashEquivalentsPolicyTextBlock>
    <us-gaap:MarketableSecuritiesPolicy
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjIw_6eccd9e4-24a9-4694-b984-3daf4aec9493">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Marketable Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company classifies marketable securities as available-for-sale at the time of purchase and reevaluates such classification at each balance sheet date. The Company may sell these securities at any time for use in current operations even if they have not yet reached maturity. As a result, the Company classifies its marketable securities, including those with maturities beyond twelve months, as current assets in the consolidated balance sheets. These marketable securities are carried at fair value and unrealized gains and losses are recorded in other comprehensive income, which is reflected as a component of stockholders&#x2019; equity. These marketable securities are assessed as to whether those with unrealized loss positions are other than temporarily impaired. The Company considers impairments to be other than temporary if they are related to deterioration in credit risk or if it is likely the securities will be sold before the recovery of their cost basis. Realized gains and losses from the sale of marketable securities and declines in value deemed to be other than temporary are determined based on the specific identification method. Realized gains and losses, and any expected credit losses, are reported in other income (expense), net in the consolidated statements of operations and comprehensive income.&lt;/span&gt;&lt;/div&gt;</us-gaap:MarketableSecuritiesPolicy>
    <us-gaap:FairValueOfFinancialInstrumentsPolicy
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjMw_371ae5b5-9f41-465b-8a32-825786ea58ae">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Fair Value of Financial Instruments&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Financial instruments consist of cash equivalents, marketable securities, non-marketable equity investment, accounts receivable, accounts payable, and accrued liabilities. Cash equivalents and marketable securities are remeasured at fair value at the end of every period. Non-marketable equity investment is remeasured at fair value when there has been an observable price change from an orderly transaction for identical or similar investments of the same issuer. Accounts receivable, accounts payable and accrued liabilities are stated at their carrying value, which approximates fair value due to the short time to the expected receipt or payment.&lt;/span&gt;&lt;/div&gt;</us-gaap:FairValueOfFinancialInstrumentsPolicy>
    <us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjIx_8df293b6-f841-401a-8987-480968d92103">Accounts Receivable and Allowance for Credit LossesAccounts receivable are recorded at the invoiced amount, are unsecured, and do not bear interest. The allowance for credit losses is based on the best estimate of the amount of probable credit losses in existing accounts receivable. The allowance for credit losses is determined based on historical collection experience and the review in each period of the status of the then outstanding accounts receivable, while taking into consideration current customer information, collection history, and other relevant data. The Company reviews the allowance for credit losses on a quarterly basis. Account balances are written off against the allowance when the Company believes it is probable the receivable will not be recovered.</us-gaap:ReceivablesTradeAndOtherAccountsReceivableAllowanceForDoubtfulAccountsPolicy>
    <us-gaap:AccountsReceivableAllowanceForCreditLossTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjM4_eb5959ff-d39a-4ade-b9aa-1ab5053c9540">&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents the changes in the allowance for credit losses (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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 2px 10pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Allowance for credit losses, beginning balance&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,989&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,051&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Provision&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;319&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Write-offs&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(224)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(381)&lt;/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 10pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Allowance for credit losses, ending balance&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,765&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,989&#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:AccountsReceivableAllowanceForCreditLossTableTextBlock>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90YWJsZTo3YWZhZGNjNjc5YTE0Mzk4OGU2MTc2YzkwMjExNjUxNS90YWJsZXJhbmdlOjdhZmFkY2M2NzlhMTQzOTg4ZTYxNzZjOTAyMTE2NTE1XzItMS0xLTEtNzc5MDg_178a9b29-fb0f-43ce-a004-3eb6bc26ac10"
      unitRef="usd">1765000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90YWJsZTo3YWZhZGNjNjc5YTE0Mzk4OGU2MTc2YzkwMjExNjUxNS90YWJsZXJhbmdlOjdhZmFkY2M2NzlhMTQzOTg4ZTYxNzZjOTAyMTE2NTE1XzItMy0xLTEtNzc5MDg_a2304a7c-a42c-44f1-bc43-3f7b7b6fe6bf"
      unitRef="usd">1989000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="i4d92a3b2acb54d89ae14c1fdee13f997_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90YWJsZTo3YWZhZGNjNjc5YTE0Mzk4OGU2MTc2YzkwMjExNjUxNS90YWJsZXJhbmdlOjdhZmFkY2M2NzlhMTQzOTg4ZTYxNzZjOTAyMTE2NTE1XzItNS0xLTEtNzc5MDg_c87834ef-4a8b-4151-a20f-3c3c1ef3c2db"
      unitRef="usd">2051000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90YWJsZTo3YWZhZGNjNjc5YTE0Mzk4OGU2MTc2YzkwMjExNjUxNS90YWJsZXJhbmdlOjdhZmFkY2M2NzlhMTQzOTg4ZTYxNzZjOTAyMTE2NTE1XzMtMS0xLTEtNzc5MDg_0b5dbfe1-1981-44e7-9bf1-94dc3bee3a37"
      unitRef="usd">0</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90YWJsZTo3YWZhZGNjNjc5YTE0Mzk4OGU2MTc2YzkwMjExNjUxNS90YWJsZXJhbmdlOjdhZmFkY2M2NzlhMTQzOTg4ZTYxNzZjOTAyMTE2NTE1XzMtMy0xLTEtNzc5MDg_1f596a45-1429-4951-9fb6-2ffe0c2353a3"
      unitRef="usd">0</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90YWJsZTo3YWZhZGNjNjc5YTE0Mzk4OGU2MTc2YzkwMjExNjUxNS90YWJsZXJhbmdlOjdhZmFkY2M2NzlhMTQzOTg4ZTYxNzZjOTAyMTE2NTE1XzMtNS0xLTEtNzc5MDg_d4d8236d-7122-48bd-b26f-38a86de92c81"
      unitRef="usd">319000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90YWJsZTo3YWZhZGNjNjc5YTE0Mzk4OGU2MTc2YzkwMjExNjUxNS90YWJsZXJhbmdlOjdhZmFkY2M2NzlhMTQzOTg4ZTYxNzZjOTAyMTE2NTE1XzQtMS0xLTEtNzc5MDg_98b8642f-3e95-4201-aaa6-85e82d338524"
      unitRef="usd">0</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90YWJsZTo3YWZhZGNjNjc5YTE0Mzk4OGU2MTc2YzkwMjExNjUxNS90YWJsZXJhbmdlOjdhZmFkY2M2NzlhMTQzOTg4ZTYxNzZjOTAyMTE2NTE1XzQtMy0xLTEtNzc5MDg_91356081-26a8-4e6a-966e-870ad3809118"
      unitRef="usd">224000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90YWJsZTo3YWZhZGNjNjc5YTE0Mzk4OGU2MTc2YzkwMjExNjUxNS90YWJsZXJhbmdlOjdhZmFkY2M2NzlhMTQzOTg4ZTYxNzZjOTAyMTE2NTE1XzQtNS0xLTEtNzc5MDg_74b3f8f3-74dc-429e-96fe-12f855c6820c"
      unitRef="usd">381000</us-gaap:AllowanceForDoubtfulAccountsReceivableWriteOffs>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90YWJsZTo3YWZhZGNjNjc5YTE0Mzk4OGU2MTc2YzkwMjExNjUxNS90YWJsZXJhbmdlOjdhZmFkY2M2NzlhMTQzOTg4ZTYxNzZjOTAyMTE2NTE1XzUtMS0xLTEtNzc5MDg_1af0e7d4-95c0-4124-ac1d-888b02bf1954"
      unitRef="usd">1765000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90YWJsZTo3YWZhZGNjNjc5YTE0Mzk4OGU2MTc2YzkwMjExNjUxNS90YWJsZXJhbmdlOjdhZmFkY2M2NzlhMTQzOTg4ZTYxNzZjOTAyMTE2NTE1XzUtMy0xLTEtNzc5MDg_0af414a0-64ef-4fee-ad3b-1d640e7b1157"
      unitRef="usd">1765000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:AllowanceForDoubtfulAccountsReceivable
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90YWJsZTo3YWZhZGNjNjc5YTE0Mzk4OGU2MTc2YzkwMjExNjUxNS90YWJsZXJhbmdlOjdhZmFkY2M2NzlhMTQzOTg4ZTYxNzZjOTAyMTE2NTE1XzUtNS0xLTEtNzc5MDg_9b4a485f-1c56-4746-83a8-d970e2ce9911"
      unitRef="usd">1989000</us-gaap:AllowanceForDoubtfulAccountsReceivable>
    <us-gaap:PropertyPlantAndEquipmentPolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjM0_5f2d6750-58aa-48d7-a91a-3ee37e8b5838">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Property and Equipment&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property and equipment, including leasehold improvements, are stated at cost, less accumulated depreciation and amortization. Depreciation is computed using the straight-line method over the estimated useful lives of the related assets, generally three years. Leasehold improvements are amortized on a straight-line basis over the shorter of the estimated useful lives of the assets or the remaining lease term.&lt;/span&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentPolicyTextBlock>
    <us-gaap:PropertyPlantAndEquipmentUsefulLife
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzY1OTcwNjk4MzIzNzc_42850755-0879-4667-a558-824c95156cfb">P3Y</us-gaap:PropertyPlantAndEquipmentUsefulLife>
    <us-gaap:InternalUseSoftwarePolicy
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjI3_59f3f2cc-ebac-433f-836c-e5be2c384b93">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Internal Use Software Development Costs&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company capitalizes certain internal use software development costs associated with creating and enhancing internal use software related to its platform and technology infrastructure. These costs include personnel and related employee benefits expenses for employees who are directly associated with and who devote time to software projects, and external direct costs of materials and services consumed in developing or obtaining the software. Software development costs that do not meet the criteria for capitalization are expensed as incurred and recorded in technology and development expenses in the consolidated statements of operations and comprehensive income.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Software development activities generally consist of three stages, (i) the planning stage, (ii) the application and infrastructure development stage, and (iii) the post implementation stage. Costs incurred in the planning and post implementation stages of software development, including costs associated with the post configuration training and repairs and maintenance of the developed technologies, are expensed as incurred. &lt;/span&gt;&lt;/div&gt;The Company capitalizes costs associated with software developed for internal use when both the preliminary project stage is completed and management has authorized further funding for the completion of the project. Costs incurred in the application and infrastructure development stages, including significant enhancements and upgrades, are capitalized. Capitalization ends once a project is substantially complete and the software and technologies are ready for their intended purpose. Internal use software development costs are amortized using a straight-line method over the estimated useful life of &lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzc3MzM_283f5087-f90b-4252-9136-302824a2a991"&gt;two&lt;/span&gt; to five years, commencing when the software is ready for its intended use.</us-gaap:InternalUseSoftwarePolicy>
    <us-gaap:FiniteLivedIntangibleAssetUsefulLife
      contextRef="ic79c56dcd3be488092371b2754077455_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzc3Mzk_eb81d3bc-45dc-431b-90df-1340504608cc">P5Y</us-gaap:FiniteLivedIntangibleAssetUsefulLife>
    <us-gaap:LesseeLeasesPolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzY1OTcwNjk4MzIzNzY_83256037-31c3-4999-9e5e-e146ef8b6b5e">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Leases&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;We determine if an arrangement is a lease at inception. The Company&#x2019;s leases may include a non-lease component representing additional services transferred to the Company, such as common area maintenance for real estate. The Company accounts for each separate lease component and the non-lease components associated with that lease component as a single lease component. As such, minimum lease payments include fixed payments for non-lease components within a lease agreement but exclude variable lease payments not dependent on an index or rate, such as common area maintenance, operating expenses, utilities, or other costs that are subject to fluctuation from period to period. Non-lease components that are variable in nature are recorded as variable lease expense in the period incurred.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company made an accounting policy election under Topic 842 not to recognize right-of-use (ROU) assets and lease liabilities for leases with a term of twelve months or less. For all other leases, the Company recognizes ROU assets and lease liabilities based on the present value of lease payments over the lease term at the commencement date of the lease. The ROU assets also include any initial direct costs incurred and lease payments made at or before the commencement date and are reduced by any lease incentives.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company uses its incremental borrowing rate to determine the present value of lease payments, as the Company&#x2019;s leases do not have a readily determinable implicit discount rate. The incremental borrowing rate is the rate of interest the Company would have to pay to borrow on a collateralized basis over a similar term and amount in a similar economic environment. Judgement is applied in assessing factors such as Company-specific credit risk, lease term, nature and quality of the underlying collateral, currency, and economic environment in determining the incremental borrowing rate to apply to each lease.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease assets and liabilities are included on our consolidated balance sheets. Finance lease assets are included in property, equipment and software, net. Finance lease liabilities are included in accrued liabilities or other liabilities, non-current.&lt;/span&gt;&lt;/div&gt;</us-gaap:LesseeLeasesPolicyTextBlock>
    <us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjE1_830946bf-23a5-4061-9ca1-0f9c85baf831">Impairment of Long-Lived AssetsThe Company continually monitors events and changes in circumstances that could indicate that carrying amounts of its long-lived assets, including property and equipment and intangible assets may not be recoverable. When such events or changes in circumstances occur, the Company assesses the recoverability of long-lived assets by determining whether the carrying value of such assets will be recovered through their undiscounted expected future cash flows. If the future undiscounted cash flows are less than the carrying value of these assets, the Company recognizes an impairment loss based on the excess of the carrying value over the fair value of the assets.</us-gaap:ImpairmentOrDisposalOfLongLivedAssetsPolicyTextBlock>
    <us-gaap:BusinessCombinationsPolicy
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzY1OTcwNjk4MjUzOTY_b3356de5-4387-4d45-8382-8a973fd47123">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Business Combinations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company allocates the purchase consideration for acquired companies to tangible and intangible assets acquired and liabilities assumed based on their estimated fair values as of the acquisition date, with the excess recorded to goodwill. These estimates are inherently uncertain and subject to refinement. During the measurement period, which may be up to one year from the acquisition date, the Company may record adjustments to the fair value of these tangible and intangible assets acquired and liabilities assumed with the corresponding offset to goodwill. Upon the conclusion of the measurement period or final determination of the fair value of assets acquired or liabilities assumed, whichever comes first, any subsequent adjustments are recorded to the consolidated statements of operations.&lt;/span&gt;&lt;/div&gt;</us-gaap:BusinessCombinationsPolicy>
    <us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjE2_4fd883eb-5193-4548-86e8-c277dc0b3f6f">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Acquisition-related Intangible Assets and Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Acquisition-related intangible assets with finite lives are amortized over their estimated useful lives on a straight-line basis. Goodwill amounts are not amortized. Acquisition-related intangible assets and goodwill are tested for impairment at least annually or more frequently if events or changes in circumstances indicate that the acquisition-related intangible assets or goodwill may be impaired.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Events or changes in circumstances which could trigger an impairment review include a significant adverse change in legal factors or in the business climate, an adverse action or assessment by a regulator, unanticipated competition, a loss of key personnel, significant changes in the manner of the Company&#x2019;s use of the acquired assets, or the strategy for the Company&#x2019;s overall business, significant negative industry or economic trends, or significant underperformance relative to expected historical or projected future results of operations. The Company has not recorded any acquisition-related intangible assets or goodwill impairment to date.&lt;/span&gt;&lt;/div&gt;</us-gaap:GoodwillAndIntangibleAssetsGoodwillPolicy>
    <us-gaap:InvestmentPolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjE3_4fb9b5db-5db6-4a80-b645-d3e6df21c882">Impairment of Equity InvestmentPrior to December 2021, the Company measured its equity investment in a privately held company in which the Company did not own a controlling interest or exercise significant influence using the measurement alternative for equity securities without a readily determinable fair value. Under the measurement alternative, the carrying value is measured at cost, less any impairment, plus or minus changes resulting from observable price changes in orderly transactions for identical or similar investments of the same issuer. During December 2021, an observable transaction occurred for the Company&#x2019;s equity investment wherein the privately held company merged with a publicly held company whose shares of common stock were publicly quoted in the Over-the-Counter (&#x201c;OTC&#x201d;) market. Therefore, the equity investment had a readily determinable fair value as of December 31, 2021 and was subsequently measured at fair value in the Company&#x2019;s consolidated balance sheets with unrealized gains and losses included in other income (expense), net in the Company&#x2019;s consolidated statements of operations. However, during September 2022, the Company concluded there was no longer a readily determinable fair value for its equity investment because the shares were no longer publicly quoted pursuant to U.S. Securities and Exchange Commission (&#x201c;SEC&#x201d;) Rule 15c2-11. The Company evaluated the measurement guidance for equity securities without a readily determinable fair value and performed a qualitative assessment of various impairment indicators and concluded the equity investment was fully impaired as of September 30, 2022 and December 31, 2022. As a result, the Company recognized an impairment loss equal to the difference between the fair value of the investment and its carrying amount. An impairment charge of $5.9 million was recorded within other income (expense), net in the Company&#x2019;s consolidated statements of operations for the year ended December 31, 2022</us-gaap:InvestmentPolicyTextBlock>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueDownwardPriceAdjustmentAnnualAmount
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzU0OTc1NTg3MzM1MA_f9e55888-1f8d-43f4-928b-a4cbef91673e"
      unitRef="usd">5900000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueDownwardPriceAdjustmentAnnualAmount>
    <us-gaap:RevenueFromContractWithCustomerPolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjMx_3ed4ab96-de2a-44a7-920d-21f23e4342d0">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Revenue Recognition&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes revenue through the following steps:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Identification of a contract with a customer;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Identification of the performance obligations in the contract;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Determination of the transaction price;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Allocation of the transaction price to the performance obligations in the contract; and&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Recognition of revenue when or as the performance obligations are satisfied.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company refers to its publishers, app developers, and channel partners collectively as its publishers. The Company generates revenue through the monetization of publisher ad impressions on its platform. The Company&#x2019;s platform allows publishers to sell, in real time, ad impressions to buyers and provides automated inventory management and monetization tools to publishers across various device types and digital ad formats. The Company charges publishers a fee, which is typically a percentage of the value of the ad impressions monetized through the Company&#x2019;s platform. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company maintains agreements with each publisher and buyer in the form of written service agreements, which set out the terms of the relationship, including payment terms (typically ninety days or less) and access to its platform. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company invoices buyers for publisher digital advertising inventory purchased through its platform. The Company recognizes revenue when a bid is won and a buyer purchases inventory on its platform. The Company estimates and records reductions to revenue for rebates related to supply path optimization agreements based on expected volumes during the incentive term.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The determination as to whether revenue should be reported gross of amounts billed to buyers (gross basis) or net of payments to publishers (net basis) requires significant judgment, and is based on the Company&#x2019;s assessment of whether it is acting as the principal or an agent in the transaction. The Company has determined that it does not act as the principal in the purchase and sale of digital advertising inventory because it does not control the advertising inventory and it does not set the price which is the result of an auction within the marketplace. Based on these and other factors, the Company reports revenue on a net basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company generally invoices buyers at the end of each month for the full purchase price of ad impressions monetized in that month. Accounts receivable are recorded at the amount of gross billings for the amounts the Company is responsible to collect, and accounts payable are recorded at the net amount payable to publishers. Accordingly, both accounts receivable and accounts payable appear large in relation to revenue reported on a net basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Cost of Revenue &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of revenue consists primarily of data center co-location costs, depreciation expense related to hardware supporting the Company&#x2019;s platform, amortization expense related to capitalized internal use software development costs, personnel costs, and allocated facilities costs. Personnel costs include salaries, bonuses, stock-based compensation, and employee benefit costs, and are primarily attributable to the Company&#x2019;s network operations group which maintains the Company&#x2019;s servers and the Company&#x2019;s client operations group, which is responsible for integration of new publishers and buyers and providing customer support for existing customers.&lt;/span&gt;&lt;/div&gt;</us-gaap:RevenueFromContractWithCustomerPolicyTextBlock>
    <pubm:TechnologyAndDevelopmentCostsPolicyPolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjM1_dfeec7d6-7e4f-45be-b25c-da1a36608070">Technology and Development CostsTechnology and development expenses consist primarily of personnel costs, including salaries, bonuses, stock-based compensation, and employee benefits costs, allocated facilities costs, and professional services. These expenses include costs incurred in the development, implementation and maintenance of internal use software, including platform and related infrastructure. Technology and development costs are expensed as incurred, except to the extent that such costs are associated with internal use software development that meets the criteria for capitalization. The Company amortizes internal use software development costs that relate to its revenue producing activities on its platform to cost of revenue.</pubm:TechnologyAndDevelopmentCostsPolicyPolicyTextBlock>
    <us-gaap:AdvertisingCostsPolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjIz_b3c53029-7f58-4fdf-a7db-f23a836fcbe5">Advertising CostsAdvertising costs are expensed as incurred and are included in sales and marketing expenses.</us-gaap:AdvertisingCostsPolicyTextBlock>
    <us-gaap:AdvertisingExpense
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzE0ODQ1_f78f0ca7-e9c0-40f1-a950-04008a7b8e0d"
      unitRef="usd">300000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzE0ODQ5_1bd547a2-a43c-4ebf-bd5e-e023b1448480"
      unitRef="usd">500000</us-gaap:AdvertisingExpense>
    <us-gaap:AdvertisingExpense
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzE0ODU2_e1b2cb0d-3ec7-4e90-9aab-0dd728e5f8a4"
      unitRef="usd">500000</us-gaap:AdvertisingExpense>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjM5_adffaca1-464b-49b9-8180-9fd0fd7e6c88">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; Stock-based compensation expense related to stock awards, including stock options, restricted stock units (&#x201c;RSUs&#x201d;), and the employee stock purchase plan (the &#x201c;ESPP&#x201d;), is measured based on the fair value of the awards granted and recognized as an expense on a straight-line basis over the requisite service period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of each option and ESPP award is estimated on the grant date using the Black-Scholes option pricing model. The Black-Scholes option pricing model requires the input of highly subjective assumptions, including the fair value of the underlying common stock, the expected term of the award, the expected volatility of the price of our common stock, risk-free interest rates, and the expected dividend yield of our common stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of each RSU award is based on the fair value of the underlying common stock as of the grant date.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The assumptions used to determine the fair value of the stock awards represent management&#x2019;s best estimates. These estimates involve inherent uncertainties and the application of management&#x2019;s judgment. The Company accounts for forfeitures as they occur instead of estimating the number of awards expected to be forfeited. For additional information regarding stock-based compensation and the assumptions used for determining the fair value of stock options and ESPP awards, refer to Note 10&#x2014;Stockholders&#x2019; Equity and Equity Incentive Plans.&lt;/span&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjI0_c2ab0edf-9865-4561-8ddd-f1b21878261c">Foreign Currency TranslationThe functional currency of the Company&#x2019;s foreign subsidiaries is the U.S. dollar. Accordingly, all monetary assets and liabilities of these subsidiaries are remeasured at the current exchange rate at each balance sheet date, nonmonetary assets and liabilities are measured at historical rates, and revenue and expenses are remeasured at average exchange rates during the period. Transaction gains and losses are included in other income (expense), net in the accompanying consolidated statements of operations.</us-gaap:ForeignCurrencyTransactionsAndTranslationsPolicyTextBlock>
    <us-gaap:ForeignCurrencyTransactionGainLossUnrealized
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzE2OTcw_11a46b89-50e4-4424-ba7f-de9ae1fb95e7"
      unitRef="usd">700000</us-gaap:ForeignCurrencyTransactionGainLossUnrealized>
    <us-gaap:ForeignCurrencyTransactionGainLossUnrealized
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzE2OTc0_4219eb8b-687d-49e2-8567-2d791d1aa849"
      unitRef="usd">100000</us-gaap:ForeignCurrencyTransactionGainLossUnrealized>
    <us-gaap:ForeignCurrencyTransactionGainLossUnrealized
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzE2OTgy_dafaed77-3a7f-4ed0-b575-bd8880cd4967"
      unitRef="usd">-600000</us-gaap:ForeignCurrencyTransactionGainLossUnrealized>
    <us-gaap:IncomeTaxPolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjI4_5617dbc2-be76-4a9b-b8f9-ef3b79f8f5a9">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Income Taxes&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company utilizes the asset and liability method under which deferred tax assets and liabilities arise from the temporary differences between the tax basis of an asset or liability and its reported amount in the consolidated financial statements, as well as from net operating loss and tax credit carryforwards. Deferred tax amounts are determined by using the tax rates expected to be in effect when the taxes will actually be paid or refunds received, as provided for under currently enacted tax law. A valuation allowance is established when necessary to reduce deferred tax assets to the amount expected to be realized.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes the tax benefit from an uncertain tax position only if it is more likely than not that the tax position will be sustained on examination by the taxing authorities, based on the technical merits of the position. The tax benefits recognized in the consolidated financial statements from such positions are then measured based on the largest benefit that has a greater than 50% likelihood of being realized. The Company recognizes interest and penalties related to income tax matters as income tax expense.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxPolicyTextBlock>
    <us-gaap:SegmentReportingPolicyPolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjEx_8595e651-4dd4-464d-82c2-3032807c2606">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Segment Information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating segments are components of an enterprise for which separate financial information is available and is evaluated regularly by the Company&#x2019;s chief operating decision maker in deciding how to allocate resources and assessing performance. The Company&#x2019;s chief operating decision maker is its Chief Executive Officer.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Chief Executive Officer reviews financial information presented on a consolidated basis, for purposes of allocating resources and evaluating financial performance. The Company has one business activity and there are no segment managers accountable for operations, operating results beyond revenue or gross profit, or plans for levels or components below the consolidated unit level. Accordingly, the Company has one single reporting segment.&lt;/span&gt;&lt;/div&gt;</us-gaap:SegmentReportingPolicyPolicyTextBlock>
    <us-gaap:NumberOfOperatingSegments
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzY1OTcwNjk4MzIzOTM_d9bc444e-64f7-4481-aba6-8bb64c740374"
      unitRef="segment">1</us-gaap:NumberOfOperatingSegments>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i35ea74bd5df0428091e6c7419e9e9b7e_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzE5NDky_62dac1a9-1cb4-4418-ad51-7e02c9ff50a3"
      unitRef="number">0.13</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i1ed42fce6aa34cf18b55da78d539a6f4_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzE5NDk2_d131ce36-8477-4e28-a215-fffaa2fa963a"
      unitRef="number">0.17</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i646a822112c54853b1ca5662c2acab6f_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzE5NTAz_9eb18761-3697-41b3-86f9-a5a2dbaf6c79"
      unitRef="number">0.20</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i0907b108df8d4060b483a95efef44373_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzE5NTgx_0dccdd59-c3ab-4fa9-ba42-9c026d6b8b5c"
      unitRef="number">0.33</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i0734c015b9de464abaedd29930b6275d_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzE5NTg4_2fdc3a99-522b-427d-b01f-cc00e2abcd0e"
      unitRef="number">0.15</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="ib761c16c18864a639816892a11314e3d_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzU0OTc1NTg3MjY2Mg_ac3c9ca7-a34c-4cad-ba41-406ea86229b2"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i9a93751ca5a74f22b987dbb0ad444f14_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzE5NjY2_54712f0a-5f50-4a81-96d3-9f59ee4f8e0f"
      unitRef="number">0.29</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i26c974d99caf4a2abd381ff10a6ab5c3_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzE5Njcw_c8fdabea-bc99-4641-864c-a0219d52f81b"
      unitRef="number">0.19</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzI3NjE4_f627c831-57a6-47a7-99fd-b5d5adcfbeca">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Net Income Per Share Attributable to Common Stockholders&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Basic and diluted net income per share attributable to Class A and Class B common stock is computed in conformity with the two-class method required for participating securities. The Company applies the two-class method to allocate earnings between common and other participating securities based on their participation rights. Prior to the conversion of preferred stock to common stock concurrent with the Company&#x2019;s IPO in December 2020 and because the holders of the Company&#x2019;s convertible preferred stock were entitled to participate in dividends, the Company allocated net income to common and preferred stock based on their respective rights to receive dividends, whether or not declared.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Distributed and undistributed earnings allocated to participating securities are subtracted from net income in determining net income attributable to common stockholders. Basic net income per share is computed by dividing net income attributable to common stockholders by the weighted-average number of shares of our Class A and Class B common stock outstanding.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The diluted net income per share attributable to common stockholders is computed by giving effect to all dilutive securities. Diluted net income per share attributable to common stockholders is computed by dividing the resulting net income attributable to common stockholders by the weighted-average number of fully diluted common shares outstanding. During the periods when there is a net loss attributable to common stockholders, potentially dilutive common stock equivalents have been excluded from the calculation of diluted net loss per share attributable to common stockholders as their effect is anti-dilutive.&lt;/span&gt;&lt;/div&gt;</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDYvZnJhZzpiNjYxNjQzYzY1MDY0YjE0OTM3YTJmN2Q3YjFiNTVhMi90ZXh0cmVnaW9uOmI2NjE2NDNjNjUwNjRiMTQ5MzdhMmY3ZDdiMWI1NWEyXzY1OTcwNjk4MjUzOTU_35d7c3e6-86de-4f7d-bea2-1df731ce9bbb">&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Recent Accounting Pronouncements Not Yet Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In October 2021, the Financial Accounting Standards Board (&#x201c;FASB&#x201d;) issued Accounting Standards Update (&#x201c;ASU&#x201d;) No. 2021-08, Business Combinations (Topic 805): Accounting for Contract Assets and Contract Liabilities from Contracts with Customers, which requires contract assets and contract liabilities acquired in a business combination to be recognized and measured in accordance with Topic 606, Revenue from Contracts with Customers, as if the acquirer had originated the contracts. Under current GAAP, such assets and liabilities are recognized by the acquirer at fair value on the acquisition date. ASU 2021-08 is effective for the Company for interim and annual periods beginning after December 15, 2022 on a prospective basis, with early adoption permitted. The Company expects to adopt ASU 2021-08 in the first quarter of fiscal 2023. The Company does not expect the adoption of this guidance to have a material impact on its consolidated financial statements.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90ZXh0cmVnaW9uOmI3YjA3NDMzNmNlYjQwOWJhNmNmNTYxZTE5NGRiMTE5XzMwMDU_75f3dd70-4875-4ef4-b4be-f33fbd55f0ec">Fair Value Measurements&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Assets and liabilities recorded at fair value on a recurring basis in the consolidated balance sheets are categorized based upon the level of judgment associated with the inputs used to measure their fair values. Fair value represents the price that would be received to sell an asset or paid to transfer a liability in an orderly transaction between market participants at the measurement date. Valuation techniques used to measure fair value must maximize the use of observable inputs and minimize the use of unobservable inputs. The authoritative guidance on fair value measurements establishes a three-tier fair value hierarchy for disclosure of fair value measurements as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 1 &#x2013; Inputs are unadjusted, quoted prices in active markets for identical assets or liabilities at the measurement date;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 2 &#x2013; Inputs are observable, unadjusted quoted prices in active markets for similar assets or liabilities, unadjusted quoted prices for identical or similar assets or liabilities 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:6pt;padding-left:36pt;text-align:justify;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2022;&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%;padding-left:14.5pt"&gt;Level 3 &#x2013; Unobservable inputs that are significant to the measurement of the fair value of the assets or liabilities that are supported by little or no market data.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A financial instrument&#x2019;s categorization within the valuation hierarchy is based upon the lowest level of input that is significant to the fair value measurement. The Company&#x2019;s assessment of the significance of a particular input to the fair value measurement in its entirety requires management to make judgments and consider factors specific to the asset or liability.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s financial assets consist of Level 1 and 2 assets. The Company had no Level 3 assets or liabilities for the periods presented. The Company classifies its cash equivalents and marketable securities within Level 1 or Level 2 because they are valued using either quoted market prices or inputs other than quoted prices which are directly or indirectly observable in the market, including readily-available pricing sources for the identical underlying security which may not be actively traded. The Company&#x2019;s fixed income available-for-sale securities consist of high quality, investment grade securities from diverse issuers. The valuation techniques used to measure the fair value of the Company&#x2019;s marketable securities were derived from non-binding market consensus prices that are corroborated by observable market data and quoted market prices for similar instruments.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables set forth the fair value of the Company&#x2019;s financial assets and liabilities measured on a recurring basis by level within the fair value hierarchy (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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:44.354%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.085%"/&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="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Level 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Level 2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Level 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Financial Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;48,884&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;48,884&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certificates of deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,169&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,169&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash equivalents&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;48,884&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,169&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;53,053&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Commercial paper&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;63,483&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;63,483&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Agency debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,778&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,778&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;U.S. Treasury and government debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,752&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,752&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Marketable securities&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;82,013&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;82,013&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total Financial Assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;48,884&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;86,182&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;135,066&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="21" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Level 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Level 2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Level 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Financial Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;65,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;65,311&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certificates of deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash equivalents&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;65,311&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,942&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;71,253&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Commercial paper&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,954&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,954&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;U.S. Treasury and government debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,167&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Marketable securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;77,121&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;77,121&#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;div style="padding-left:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Equity investment &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,948&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,948&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Non-current assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,948&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,948&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total Financial Assets&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;71,259&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;83,063&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;154,322&#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="padding-left:18pt;text-indent:-18pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;There were no transfers between Level 1 and Level 2 fair value measurement categories during the years ended December&#160;31, 2022 and 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;_______________&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;padding-left:7.52pt"&gt;See Note 2 to the Company&#x2019;s consolidated financial statements &#x201c;Basis of Presentation and Summary of Significant Accounting Policies &#x2014; Impairment of Equity Investment.&#x201d;&lt;/span&gt;&lt;/div&gt;</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90ZXh0cmVnaW9uOmI3YjA3NDMzNmNlYjQwOWJhNmNmNTYxZTE5NGRiMTE5XzMwMDY_6f118d72-d58a-4723-9b65-3bc48d7cef12">&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables set forth the fair value of the Company&#x2019;s financial assets and liabilities measured on a recurring basis by level within the fair value hierarchy (in thousands): &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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:44.354%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.085%"/&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="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Level 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Level 2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Level 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Financial Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;48,884&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;48,884&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certificates of deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,169&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,169&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash equivalents&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;48,884&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,169&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;53,053&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Commercial paper&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;63,483&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;63,483&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Agency debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,778&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,778&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;U.S. Treasury and government debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,752&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,752&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Marketable securities&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;82,013&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;82,013&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total Financial Assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;48,884&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;86,182&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;135,066&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:14pt"&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="21" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Level 1&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Level 2&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Level 3&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Financial Assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Money market funds&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;65,311&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;65,311&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Certificates of deposit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,942&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash equivalents&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;65,311&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,942&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;71,253&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Commercial paper&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,954&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,954&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;U.S. Treasury and government debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,167&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,167&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Marketable securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;77,121&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;77,121&#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;div style="padding-left:12pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Equity investment &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:6.5pt;font-weight:400;line-height:120%;position:relative;top:-3.5pt;vertical-align:baseline"&gt;(1)&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,948&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,948&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Non-current assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,948&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,948&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total Financial Assets&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;71,259&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;83,063&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;154,322&#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="padding-left:18pt;text-indent:-18pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;There were no transfers between Level 1 and Level 2 fair value measurement categories during the years ended December&#160;31, 2022 and 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="padding-left:18pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%"&gt;_______________&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;padding-left:36pt;text-indent:-18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%"&gt;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:120%;padding-left:7.52pt"&gt;See Note 2 to the Company&#x2019;s consolidated financial statements &#x201c;Basis of Presentation and Summary of Significant Accounting Policies &#x2014; Impairment of Equity Investment.&#x201d;&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ib8e74d7fda6442ac9ad473c808dd6072_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzMtMS0xLTEtNzc5MDg_b12e64da-9812-4e7f-b92f-654de0e23ac8"
      unitRef="usd">48884000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i7e1d1c72c0a949809d2ea748e6832520_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzMtMy0xLTEtNzc5MDg_22a2f967-915d-4869-8eca-dbfce7399e52"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ifd5960857bca456ab43c8b0a74aa3fde_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzMtNS0xLTEtNzc5MDg_5b5d93b9-c68b-4409-97a4-07a24fd8f971"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i4aad609eb43641e384a1430e1814a856_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzMtNy0xLTEtNzc5MDg_53aacab4-3dc0-4cae-9c08-6b0d1631f78b"
      unitRef="usd">48884000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i283cdc0d7472453891144fab41ecb1f1_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzQtMS0xLTEtNzc5MDg_e247efc9-6ab9-4bb4-b873-6b77a9e198fa"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i01e58e661485480598a1358c3bd0fe7b_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzQtMy0xLTEtNzc5MDg_d0d9da81-0923-46b2-8f32-1aac715552db"
      unitRef="usd">4169000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i58ca4231a09d48cdb579547d9432493e_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzQtNS0xLTEtNzc5MDg_c47acc8b-6206-45f9-a499-6d5297478da5"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ic1e960324b37402caf918c1a06bde43c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzQtNy0xLTEtNzc5MDg_4d57aa47-1fc5-4aa1-961a-f882769d94eb"
      unitRef="usd">4169000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i978e7f2c62f54c45b8c3ce028aff8582_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzUtMS0xLTEtNzc5MDg_a89beb01-87ac-4018-90ee-781afdf23c7a"
      unitRef="usd">48884000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i87fc99ed1c7a4b2995e5e984dda08655_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzUtMy0xLTEtNzc5MDg_d560dfbc-ec59-45d6-b517-a9ad43be8821"
      unitRef="usd">4169000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i77e420cc1d934fbdb701fa897682a0d1_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzUtNS0xLTEtNzc5MDg_3cc5581b-d413-4324-83b4-5bfe70f72cf4"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ia14f4e24f62c48fea64bb32e4ed9a2b2_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzUtNy0xLTEtNzc5MDg_900d226f-ced4-46d9-a2af-f54a561bb1df"
      unitRef="usd">53053000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i6b55513816654ae7802d6096ea48c201_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzYtMS0xLTEtNzc5MDg_4dcfad9a-7674-42ce-b348-c3bc1ae3c844"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ia21d26b0fd6742349c4409c760034bbf_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzYtMy0xLTEtNzc5MDg_f34efffc-61b7-4a2e-a3a2-da9644ed2cda"
      unitRef="usd">63483000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ie812bb410cd04d4fbd711c0532339582_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzYtNS0xLTEtNzc5MDg_3ab7fdef-3515-4e53-ae0c-1125e60963f3"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i32fc715e072141129939facdfb0e880c_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzYtNy0xLTEtNzc5MDg_7bbcbe0e-c829-4e79-8b5d-919e20fef19a"
      unitRef="usd">63483000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i911c61adec844fa98563f658448ea46f_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzctMS0xLTEtODc5MzU_efe9ec90-a8e9-4fd9-933e-6b4253ea5d90"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i4d3aa3988dcc471fb8bc0275ce896f6d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzctMy0xLTEtODc5MzU_363b8ca2-0ff6-4d44-96a0-65de223c3b48"
      unitRef="usd">5778000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ia03c939a3d874674a55a53e442c088da_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzctNS0xLTEtODc5MzU_a6956305-4c80-4104-841e-f9325eaa56cd"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="iedbf4cc2da634e99915c9c391a51e808_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzctNy0xLTEtODg0MTQ_be185dde-fdd3-4350-83c3-7485c7687f75"
      unitRef="usd">5778000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="id9423e4ffcfc44558ef85f73a1450161_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzctMS0xLTEtNzc5MDg_69b98769-e43e-4963-838b-fdaaee441ee9"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i133dbe1fe1cd4d11ab8872f8e5ecae30_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzctMy0xLTEtNzc5MDg_a6d27777-f139-4c7e-b21c-4c8cc12087eb"
      unitRef="usd">12752000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ibeea57b62d7447ec95fbd12c33fabaa3_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzctNS0xLTEtNzc5MDg_9d58443c-9771-4826-9fad-0dc6ea38dfb6"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i8b7adc71c2934182b4d4c0ee186a71b1_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzctNy0xLTEtNzc5MDg_8f2fbbca-cfe1-41fc-a371-4c68580ed8d9"
      unitRef="usd">12752000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i9e136be465c0412f930b8cbe8f51449d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzgtMS0xLTEtNzc5MDg_a8720a25-e587-4902-84b8-c2cab4c47b08"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i8dea28ef5fbb42a69b6b85aa38f268fb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzgtMy0xLTEtNzc5MDg_d0c923cf-0c11-40c9-ad0b-4ebf7972453b"
      unitRef="usd">82013000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ibab8f7f9f1bc483ab93d737c789a584a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzgtNS0xLTEtNzc5MDg_77d42ae6-656f-45dc-9b4d-3343fd3e7547"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i09d097eecf4f4146a646aed546d8d864_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzgtNy0xLTEtNzc5MDg_042ce227-2d92-498b-9e0d-3f88a326f50c"
      unitRef="usd">82013000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i9e136be465c0412f930b8cbe8f51449d_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzExLTEtMS0xLTc3OTA4_d116c776-5172-45dc-8823-b05d8797e78f"
      unitRef="usd">48884000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i8dea28ef5fbb42a69b6b85aa38f268fb_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzExLTMtMS0xLTc3OTA4_194988b8-4f0b-4ecb-b20e-018d90f4ab56"
      unitRef="usd">86182000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="ibab8f7f9f1bc483ab93d737c789a584a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzExLTUtMS0xLTc3OTA4_599ae47b-ac7d-434f-8893-5a9d3d7e12a0"
      unitRef="usd">0</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i09d097eecf4f4146a646aed546d8d864_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzExLTctMS0xLTc3OTA4_725431ce-c1b6-4519-baf8-a7c25d482744"
      unitRef="usd">135066000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i0774a6a7165348fe8fd2782c2acbf83f_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE2LTEtMS0xLTc3OTA4_83e6a79d-75aa-4b67-9bbe-88dd36d1f51d"
      unitRef="usd">65311000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ie25c596426a44569b1af338aa53b6e31_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE2LTMtMS0xLTc3OTA4_52740189-e63b-4218-a97f-affec422ff18"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i0bfb3e7a11f441c7ac001aa542558c9c_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE2LTUtMS0xLTc3OTA4_0223da7e-f4dd-4b59-b541-f16f3a111071"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i38d9e8b2e8534fd4a0b7445a542e8f5d_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE2LTctMS0xLTc3OTA4_9cb00b0c-f331-449b-9927-ac8f07dfc96d"
      unitRef="usd">65311000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ia887bf90659849b1a01291297d4d006e_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE3LTEtMS0xLTc3OTA4_1e365ab2-80b2-4f70-b2d6-9cbe7affae11"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i473140a5c93f45e09c6f0961a257c9e1_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE3LTMtMS0xLTc3OTA4_8dcb7dc3-ea05-480d-93e7-05da48ce4e31"
      unitRef="usd">5942000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i3219e8a9a8cf4950a44a839d1d5a2e68_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE3LTUtMS0xLTc3OTA4_f41ab8cf-1e3c-496e-abbd-5c2f9544c155"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i6213064349be471a84d95456ff450c09_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE3LTctMS0xLTc3OTA4_8a066d98-d8f8-49e3-bb41-3a7e398deda7"
      unitRef="usd">5942000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i3e922eb57fef4e92a583e250fd1c11a8_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE4LTEtMS0xLTc3OTA4_21d5b291-21b1-46fc-b12d-8f6f6b27402c"
      unitRef="usd">65311000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i3d6c9cdfc7294b0392787dd5d7dcb57e_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE4LTMtMS0xLTc3OTA4_62658dfb-6049-4f80-b9c0-748a6235c328"
      unitRef="usd">5942000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i89159fd4fa554972aafb683990a8427c_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE4LTUtMS0xLTc3OTA4_f30117b1-a32a-4c38-ac82-2db860c1292c"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i2a13a54760b24223b7abdcb6ea6346cc_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE4LTctMS0xLTc3OTA4_903e1c56-585b-4ec3-a320-387377fe49e8"
      unitRef="usd">71253000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i2df4ef2620544de7b260889e393b8ff5_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE5LTEtMS0xLTc3OTA4_aa272597-dacf-403f-8755-2ec17da97fae"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i4deaa6e7bb2a48e49db0db483642c85d_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE5LTMtMS0xLTc3OTA4_ce16d072-2886-45e3-8fcb-3414ef17d27f"
      unitRef="usd">50954000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i2bb517d99b204484a15a64dd7259bdee_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE5LTUtMS0xLTc3OTA4_b77eb18a-01a4-495d-a584-98a586878ab5"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i47b14f0c7801492381a936da1ac8dafc_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzE5LTctMS0xLTc3OTA4_76bc9977-26e8-4dd9-9ea5-67b838197a03"
      unitRef="usd">50954000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i8bb5edf7d89b463a941f75f6a10cd8af_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIwLTEtMS0xLTc3OTA4_674b1903-ef4c-47ff-9386-6e1dc0eba77d"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i155283393d1046c585d845643901a079_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIwLTMtMS0xLTc3OTA4_38ffd7b3-6f68-4109-a8e9-500d22843ef0"
      unitRef="usd">26167000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i0dd9596562f544c09602e608d3bbbcad_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIwLTUtMS0xLTc3OTA4_f7f13085-cfb6-4bed-b0f6-de1aff3e9d04"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i54f7102ab9a34571b28842f0acddad84_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIwLTctMS0xLTc3OTA4_7414b323-fb47-474f-928b-b39c4af0dc81"
      unitRef="usd">26167000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i45178847e69f46e9844fecd4567b8132_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIxLTEtMS0xLTc3OTA4_6dd3e2c2-575d-4646-8dc4-494644a1f3a0"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i95446d62c9b543188f6abff98b269ddb_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIxLTMtMS0xLTc3OTA4_7f69834e-5371-48da-bed6-40c90e98ffcf"
      unitRef="usd">77121000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i5fb436fe3e2441b2b7f2c71eba2c7842_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIxLTUtMS0xLTc3OTA4_599331d3-2853-4e6a-aa3d-04916424b652"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i3b7dd77ba365409688d0accbc6a87e68_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIxLTctMS0xLTc3OTA4_91c7d7e7-b0ca-454c-b9df-aee1f286dace"
      unitRef="usd">77121000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount
      contextRef="i45178847e69f46e9844fecd4567b8132_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIwLTEtMS0xLTgxMDcy_0e402ceb-9b8d-4b9f-9d76-22758a7bf804"
      unitRef="usd">5948000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount
      contextRef="i95446d62c9b543188f6abff98b269ddb_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIwLTMtMS0xLTg1NjM2_d971c2ae-17e2-4206-a7f7-b39a26f3ef55"
      unitRef="usd">0</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount
      contextRef="i5fb436fe3e2441b2b7f2c71eba2c7842_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIwLTUtMS0xLTg1NjM2_fb06c3a1-a6a0-44e1-a84d-92fcfabb90a8"
      unitRef="usd">0</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount
      contextRef="i3b7dd77ba365409688d0accbc6a87e68_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIwLTctMS0xLTg1NjM2_a123d69a-9d37-4748-92b0-a95bcaa00ac2"
      unitRef="usd">5948000</us-gaap:EquitySecuritiesWithoutReadilyDeterminableFairValueAmount>
    <us-gaap:OtherAssetsFairValueDisclosure
      contextRef="i45178847e69f46e9844fecd4567b8132_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIxLTEtMS0xLTg1NjM2_99e7ad91-3e09-4ca6-8b0e-8b180717c30e"
      unitRef="usd">5948000</us-gaap:OtherAssetsFairValueDisclosure>
    <us-gaap:OtherAssetsFairValueDisclosure
      contextRef="i95446d62c9b543188f6abff98b269ddb_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIxLTMtMS0xLTg1NjM2_91cde453-6cb6-427c-bd0b-33b0b59011be"
      unitRef="usd">0</us-gaap:OtherAssetsFairValueDisclosure>
    <us-gaap:OtherAssetsFairValueDisclosure
      contextRef="i5fb436fe3e2441b2b7f2c71eba2c7842_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIxLTUtMS0xLTg1NjM2_a5cae513-0f2d-4dcd-ac86-c20c4137bfd2"
      unitRef="usd">0</us-gaap:OtherAssetsFairValueDisclosure>
    <us-gaap:OtherAssetsFairValueDisclosure
      contextRef="i3b7dd77ba365409688d0accbc6a87e68_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIxLTctMS0xLTg1NjM2_0b68f34e-3a64-4748-9731-5848d684c74f"
      unitRef="usd">5948000</us-gaap:OtherAssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i45178847e69f46e9844fecd4567b8132_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIyLTEtMS0xLTc3OTA4_ee36dbc4-e01c-4ba8-a5c2-a0a5b1460def"
      unitRef="usd">71259000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i95446d62c9b543188f6abff98b269ddb_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIyLTMtMS0xLTc3OTA4_c8b1c28d-d06c-4565-996e-3cc30b106c44"
      unitRef="usd">83063000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i5fb436fe3e2441b2b7f2c71eba2c7842_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIyLTUtMS0xLTc3OTA4_5a867413-5a70-4061-a276-e7e8b09f9a0a"
      unitRef="usd">0</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i3b7dd77ba365409688d0accbc6a87e68_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMDkvZnJhZzpiN2IwNzQzMzZjZWI0MDliYTZjZjU2MWUxOTRkYjExOS90YWJsZTo5NjA2MDEzOGY2YmE0YjRlYWZhNDY4ZDkwMDM4N2Y3ZS90YWJsZXJhbmdlOjk2MDYwMTM4ZjZiYTRiNGVhZmE0NjhkOTAwMzg3ZjdlXzIyLTctMS0xLTc3OTA4_64a9ae81-ea01-4358-92b7-24f9b8377f09"
      unitRef="usd">154322000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:SupplementalBalanceSheetDisclosuresTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzE2OTI_c13d4452-fb67-4a3b-96d8-f5917ccf8163">Balance Sheet Components&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Marketable Securities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables summarize the Company&#x2019;s marketable securities by significant investment categories (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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:44.354%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.085%"/&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="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Unrealized Loss&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Fair 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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Commercial paper&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;63,483&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;63,483&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Agency debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,762&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,779&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;U.S. Treasury and government debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,777&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(28)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,751&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;82,022&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(28)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;82,013&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Unrealized Loss&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Fair 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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Commercial paper&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,954&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,954&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;U.S. Treasury and government debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,203&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(36)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,167&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;77,157&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(36)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;77,121&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The remaining contractual maturity of all marketable securities was within one year as of December&#160;31, 2022 and 2021. Realized gains and losses were not material for the years ended December&#160;31, 2022, 2021 and 2020. As of December&#160;31, 2022 and 2021, there were no securities that were in an unrealized loss position for more than twelve months.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Property, Equipment and Software, Net&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, equipment and software, net consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Internal-use software&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;40,794&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;30,581&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Network hardware, computer equipment and software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;129,212&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;92,561&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,026&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,426&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Furniture and fixtures&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,448&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, equipment and software, gross&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;176,119&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;127,016&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Less: accumulated depreciation and amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(104,963)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(76,876)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total property, equipment and software, net&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;71,156&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Depreciation and amortization expense related to property, equipment, and software (excluding amortization of internal use software) was $23.6 million, $15.7 million, and $9.8 million for the years ended December&#160;31, 2022, 2021 and 2020, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company capitalized $14.5&#160;million, $10.3 million, and $7.3 million in software development costs during the years ended December&#160;31, 2022, 2021 and 2020, respectively. Fully-amortized software development costs of $4.3&#160;million have been removed from internal-use software and accumulated depreciation and amortization for the year ended December&#160;31, 2022. Amortization expense of internal use software was $10.0 million, $7.4 million, and $5.9 million for the years ended December&#160;31, 2022, 2021 and 2020, respectively. These costs are included within cost of revenue in the consolidated statements of operations. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company did not recognize any impairment charges on its long-lived assets during the years ended December&#160;31, 2022, 2021 and 2020 . &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Accounts Payable &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accounts payable consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Payable to publishers&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;266,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;235,440&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Trade payables&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;10,908&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,881&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total accounts payable&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;277,414&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;244,321&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Accrued Liabilities&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued liabilities consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued compensation&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;14,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;17,271&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued and other current liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,349&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,509&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total accrued liabilities&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;18,936&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;18,780&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SupplementalBalanceSheetDisclosuresTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzE2ODg_74b63b7a-8c7a-43f7-91f6-2407ca0de118">&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following tables summarize the Company&#x2019;s marketable securities by significant investment categories (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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:44.354%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.085%"/&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="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Unrealized Loss&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Fair 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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Commercial paper&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;63,483&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;63,483&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Agency debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,762&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,779&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;U.S. Treasury and government debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,777&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(28)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,751&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;82,022&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;19&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(28)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;82,013&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Amortized Cost&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Unrealized Loss&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Fair 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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Commercial paper&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,954&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,954&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;U.S. Treasury and government debt securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,203&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(36)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,167&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;77,157&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(36)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;77,121&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DebtSecuritiesAvailableForSaleTableTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent
      contextRef="i600b33ed8e204d22a0d8f575140e613f_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzItMS0xLTEtNzc5MDg_8e1b87c5-d57d-4eb0-9db9-51901da831bb"
      unitRef="usd">63483000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i600b33ed8e204d22a0d8f575140e613f_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzItMy0xLTEtNzc5MDg_5ec95a95-ad70-4072-ae1b-6afc37f53211"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i600b33ed8e204d22a0d8f575140e613f_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzItNS0xLTEtNzc5MDg_143ec8eb-68f8-4690-9614-fc63f0967d02"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i600b33ed8e204d22a0d8f575140e613f_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzItNy0xLTEtNzc5MDg_ce26aee5-27a3-439e-8c35-c95627260d76"
      unitRef="usd">63483000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent
      contextRef="if2c3d083cf6d425eb414873c5717090a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzMtMS0xLTEtODkxMzI_64a12730-77a8-4c22-9427-9e1bccf800e1"
      unitRef="usd">5762000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="if2c3d083cf6d425eb414873c5717090a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzMtMy0xLTEtODkxMzI_f120c291-27d2-4a80-b722-5a69e095ec5e"
      unitRef="usd">17000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="if2c3d083cf6d425eb414873c5717090a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzMtNS0xLTEtODkxMzI_f387c23e-5bc9-46f8-939b-97ade605476a"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="if2c3d083cf6d425eb414873c5717090a_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzMtNy0xLTEtODkxMzI_62d1bbdb-c7e4-463f-b4a7-bd9bd0527f8e"
      unitRef="usd">5779000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent
      contextRef="ic434482a55e04a01a4c5e124aed490bc_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzMtMS0xLTEtNzc5MDg_4b94bbc2-52eb-4577-989b-30dbc37f125d"
      unitRef="usd">12777000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ic434482a55e04a01a4c5e124aed490bc_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzMtMy0xLTEtNzc5MDg_a50289a2-0c32-42f0-92c2-f2630fb8924d"
      unitRef="usd">2000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ic434482a55e04a01a4c5e124aed490bc_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzMtNS0xLTEtNzc5MDg_252c8d10-e41c-4ddc-886b-dd46c10b376e"
      unitRef="usd">28000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="ic434482a55e04a01a4c5e124aed490bc_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzMtNy0xLTEtNzc5MDg_9c1b61d2-7ca0-4f18-860d-e4b74acdcc39"
      unitRef="usd">12751000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzQtMS0xLTEtNzc5MDg_2121e3c8-e310-4829-af56-fff71d17cabf"
      unitRef="usd">82022000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzQtMy0xLTEtNzc5MDg_aa2af874-32a7-4eb5-983e-b7e373dd8232"
      unitRef="usd">19000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzQtNS0xLTEtNzc5MDg_f9984331-67e1-45c7-b964-7d1539e6225f"
      unitRef="usd">28000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzQtNy0xLTEtNzc5MDg_bc5d29df-0c52-4f57-a415-999864268ebb"
      unitRef="usd">82013000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent
      contextRef="ic7fe3930bce54fc58a681b3454c4563b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzgtMS0xLTEtNzc5MDg_f3fb6527-5c46-49bb-bfaf-d04d098f4adc"
      unitRef="usd">50954000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ic7fe3930bce54fc58a681b3454c4563b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzgtMy0xLTEtNzc5MDg_b6f7686b-ed20-430c-aa0d-cc41aa36c703"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ic7fe3930bce54fc58a681b3454c4563b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzgtNS0xLTEtNzc5MDg_64ac0593-243d-4247-a37c-bf337c8d22eb"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="ic7fe3930bce54fc58a681b3454c4563b_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzgtNy0xLTEtNzc5MDg_1e62f1e5-5c8e-4829-935a-f6c9e03920d9"
      unitRef="usd">50954000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent
      contextRef="iac6890358e2740e29b2b4a3913aa9e14_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzktMS0xLTEtNzc5MDg_7cd1ea1c-1ba5-409c-9487-51c49eda1f41"
      unitRef="usd">26203000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="iac6890358e2740e29b2b4a3913aa9e14_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzktMy0xLTEtNzc5MDg_a04a528c-a8ac-471b-a2f5-27dfebb14a10"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="iac6890358e2740e29b2b4a3913aa9e14_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzktNS0xLTEtNzc5MDg_e523066e-8a9c-49db-8ae3-668271e6c8c4"
      unitRef="usd">36000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="iac6890358e2740e29b2b4a3913aa9e14_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzktNy0xLTEtNzc5MDg_caee8432-705f-47e0-9843-7fb410e82f29"
      unitRef="usd">26167000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzEwLTEtMS0xLTc3OTA4_7ae2d2ed-7ae3-41b7-9a42-d0f2b60d986e"
      unitRef="usd">77157000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzEwLTMtMS0xLTc3OTA4_6561ab15-28a7-4760-b4b9-f54728092d56"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzEwLTUtMS0xLTc3OTA4_97e8cacd-47e8-46db-a703-8f4f8f6594e8"
      unitRef="usd">36000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTozZTM0YzhlOWI0YWE0ZWY4OThmODQ2OGI1NjRjN2FjOC90YWJsZXJhbmdlOjNlMzRjOGU5YjRhYTRlZjg5OGY4NDY4YjU2NGM3YWM4XzEwLTctMS0xLTc3OTA4_4fdaad5a-ce2a-4457-9f30-53fe923a0052"
      unitRef="usd">77121000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzE2ODk_5a359fc8-3123-4797-a078-5d8e2d4904ff">&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, equipment and software, net consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Internal-use software&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;40,794&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;30,581&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Network hardware, computer equipment and software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;129,212&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;92,561&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Leasehold improvements&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,026&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,426&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Furniture and fixtures&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,087&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,448&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, equipment and software, gross&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;176,119&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;127,016&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Less: accumulated depreciation and amortization&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(104,963)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(76,876)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total property, equipment and software, net&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;71,156&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:PropertyPlantAndEquipmentTextBlock>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="idbd83cb4097648659d7e1dbe377314e9_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzItMS0xLTEtNzc5MDg_c62f448c-5cff-42df-99e2-ebf71249d6e3"
      unitRef="usd">40794000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ic838f55c48624b8d9af7c724ed3988e6_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzItMy0xLTEtNzc5MDg_6645c3d9-c187-41d5-9907-c587786424d1"
      unitRef="usd">30581000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i856f458689124797ae35ef3a71b29aa2_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzMtMS0xLTEtNzc5MDg_15a860ab-6895-4985-a068-18f92b9617be"
      unitRef="usd">129212000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ib54ea1a7675a4af6849200444be8375d_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzMtMy0xLTEtNzc5MDg_bbabb7a1-d402-46f0-93c8-25d8c7ebf8df"
      unitRef="usd">92561000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i8bb503f5e25241df86b02d02bd6f9dcd_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzQtMS0xLTEtNzc5MDg_b39c718d-16b3-42e3-9888-ce220beb9218"
      unitRef="usd">4026000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ifdf0f6630d874dff81ec73d6a378c691_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzQtMy0xLTEtNzc5MDg_c6f07a96-89f9-4707-9b35-007f4e9b429d"
      unitRef="usd">2426000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i542526fcf5f94e62a4c380c2a6b338dc_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzUtMS0xLTEtNzc5MDg_6776b623-f795-4c98-bccb-a3964dbb6183"
      unitRef="usd">2087000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i03cf1a3d82244a8e9aac4b484176b1b6_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzUtMy0xLTEtNzc5MDg_eede9bc3-95de-4715-9e49-62561eafa1a0"
      unitRef="usd">1448000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzYtMS0xLTEtNzc5MDg_6de0d42c-4889-42fd-a1b4-5002cc014dd5"
      unitRef="usd">176119000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzYtMy0xLTEtNzc5MDg_be9286f4-7ab9-4598-aed9-eeefae70292e"
      unitRef="usd">127016000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzctMS0xLTEtNzc5MDg_80181957-d2ae-4384-b5dd-0f8c1051dd05"
      unitRef="usd">104963000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzctMy0xLTEtNzc5MDg_2e875075-c3fb-48f9-9b59-708d1e15e773"
      unitRef="usd">76876000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzgtMS0xLTEtNzc5MDg_0a3cfcc0-6e35-4262-a45d-759f885f50f3"
      unitRef="usd">71156000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpkZDllNWIyOTVkZWU0ZDY4ODhiNzZhYWY4NDFiZjBmMy90YWJsZXJhbmdlOmRkOWU1YjI5NWRlZTRkNjg4OGI3NmFhZjg0MWJmMGYzXzgtMy0xLTEtNzc5MDg_9c0d56b6-d8ed-4fcd-9a74-0c1c9fe5fde0"
      unitRef="usd">50140000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzEwOTk1MTE2MzA2Njk_e5938b25-8899-4674-82ae-8b8a5c707d33"
      unitRef="usd">23600000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzEwOTk1MTE2MzA2Nzc_a02383d5-f2cc-4ce2-b0a8-9dd6fbbba31a"
      unitRef="usd">15700000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzEwOTk1MTE2MzA2OTA_de90564a-2502-4823-9362-5907dce91d75"
      unitRef="usd">9800000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzgyMA_d6534f68-73d3-47f3-bbd2-64222a527011"
      unitRef="usd">14500000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzgyNA_3eda8548-15e4-4232-9b76-4fdb97a5becd"
      unitRef="usd">10300000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzgzMg_d5c11b5a-7f54-41a9-938b-111ca2cb5589"
      unitRef="usd">7300000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <pubm:CapitalizedComputerSoftwareFullyAmortizedCostsRemoved
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzU0OTc1NTgxNzg5Ng_dff69db7-29a4-44cf-b541-e7d1daab181a"
      unitRef="usd">-4300000</pubm:CapitalizedComputerSoftwareFullyAmortizedCostsRemoved>
    <us-gaap:AdjustmentForAmortization
      contextRef="ic7806e8e7fda4e56bf63ea6fddc17919_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzU0OTc1NTgxNzgwOA_241cb53a-d85a-4ab5-a11f-77f10df407e1"
      unitRef="usd">10000000</us-gaap:AdjustmentForAmortization>
    <us-gaap:AdjustmentForAmortization
      contextRef="i6d7287665d6c4bcd919ea1391d926204_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzEwOTk1MTE2MzA3MzY_2c3baa74-dea0-4802-ba82-1bd5fedc4a4d"
      unitRef="usd">7400000</us-gaap:AdjustmentForAmortization>
    <us-gaap:AdjustmentForAmortization
      contextRef="i4a238b62b92840f58c40e990bde9705f_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzEwOTk1MTE2MzA3NTU_0cd53544-8e01-4764-99d0-1954b2e1ecde"
      unitRef="usd">5900000</us-gaap:AdjustmentForAmortization>
    <us-gaap:CapitalizedComputerSoftwareImpairments1
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzExNjc_1032589c-1100-4c6c-9dee-dead84347efe"
      unitRef="usd">0</us-gaap:CapitalizedComputerSoftwareImpairments1>
    <us-gaap:CapitalizedComputerSoftwareImpairments1
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzExNjc_60d60914-4e0e-4902-8081-347bd411b27c"
      unitRef="usd">0</us-gaap:CapitalizedComputerSoftwareImpairments1>
    <us-gaap:CapitalizedComputerSoftwareImpairments1
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzExNjc_ea86ac58-f863-47af-b224-fe13c7410445"
      unitRef="usd">0</us-gaap:CapitalizedComputerSoftwareImpairments1>
    <us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzE2OTA_9e96a76e-cb19-446a-8991-2034b87b23f6">&lt;div style="margin-top:6pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accounts payable consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Payable to publishers&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;266,506&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;235,440&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Trade payables&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;10,908&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,881&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total accounts payable&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;277,414&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;244,321&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock>
    <us-gaap:AccountsPayableOtherCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZToyNTgwZGVjOTE3MGI0YmZmOWQyMGUyMjRlYzBiNTQwNi90YWJsZXJhbmdlOjI1ODBkZWM5MTcwYjRiZmY5ZDIwZTIyNGVjMGI1NDA2XzItMS0xLTEtNzc5MDg_c1436718-0c0a-4081-8f64-306f46e8a47b"
      unitRef="usd">266506000</us-gaap:AccountsPayableOtherCurrent>
    <us-gaap:AccountsPayableOtherCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZToyNTgwZGVjOTE3MGI0YmZmOWQyMGUyMjRlYzBiNTQwNi90YWJsZXJhbmdlOjI1ODBkZWM5MTcwYjRiZmY5ZDIwZTIyNGVjMGI1NDA2XzItMy0xLTEtNzc5MDg_c1b84932-f2b7-424b-83fd-42b827f3a16f"
      unitRef="usd">235440000</us-gaap:AccountsPayableOtherCurrent>
    <us-gaap:AccountsPayableTradeCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZToyNTgwZGVjOTE3MGI0YmZmOWQyMGUyMjRlYzBiNTQwNi90YWJsZXJhbmdlOjI1ODBkZWM5MTcwYjRiZmY5ZDIwZTIyNGVjMGI1NDA2XzMtMS0xLTEtNzc5MDg_2b028f47-e095-49ca-8257-667650fdf7cd"
      unitRef="usd">10908000</us-gaap:AccountsPayableTradeCurrent>
    <us-gaap:AccountsPayableTradeCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZToyNTgwZGVjOTE3MGI0YmZmOWQyMGUyMjRlYzBiNTQwNi90YWJsZXJhbmdlOjI1ODBkZWM5MTcwYjRiZmY5ZDIwZTIyNGVjMGI1NDA2XzMtMy0xLTEtNzc5MDg_83fa4420-897c-437e-804d-1190ebedda08"
      unitRef="usd">8881000</us-gaap:AccountsPayableTradeCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZToyNTgwZGVjOTE3MGI0YmZmOWQyMGUyMjRlYzBiNTQwNi90YWJsZXJhbmdlOjI1ODBkZWM5MTcwYjRiZmY5ZDIwZTIyNGVjMGI1NDA2XzQtMS0xLTEtNzc5MDg_cce4129b-e986-4a36-9733-062c55a29afa"
      unitRef="usd">277414000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZToyNTgwZGVjOTE3MGI0YmZmOWQyMGUyMjRlYzBiNTQwNi90YWJsZXJhbmdlOjI1ODBkZWM5MTcwYjRiZmY5ZDIwZTIyNGVjMGI1NDA2XzQtMy0xLTEtNzc5MDg_fc42f6e5-c360-432c-8244-a16fe864da18"
      unitRef="usd">244321000</us-gaap:AccountsPayableCurrent>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90ZXh0cmVnaW9uOjE3NmQxMjIzYjE5MTQ0ZjFiZWVjNzdjZTVhMzM5YTc1XzE2OTE_562c4558-6b02-4da4-9c40-c65f5709479f">&lt;div style="margin-top:6pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued liabilities consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued compensation&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;14,587&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;17,271&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued and other current liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,349&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,509&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total accrued liabilities&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;18,936&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;18,780&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpjODMxMzk5NGMxNWE0NDBjOGNiNjU1MjA0NjE3ZmZjMy90YWJsZXJhbmdlOmM4MzEzOTk0YzE1YTQ0MGM4Y2I2NTUyMDQ2MTdmZmMzXzItMS0xLTEtNzc5MDg_445d90f4-84f7-4f96-ae28-71e73bddd7da"
      unitRef="usd">14587000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpjODMxMzk5NGMxNWE0NDBjOGNiNjU1MjA0NjE3ZmZjMy90YWJsZXJhbmdlOmM4MzEzOTk0YzE1YTQ0MGM4Y2I2NTUyMDQ2MTdmZmMzXzItMy0xLTEtNzc5MDg_51e90255-1247-49f1-afe2-94eaa36edaae"
      unitRef="usd">17271000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpjODMxMzk5NGMxNWE0NDBjOGNiNjU1MjA0NjE3ZmZjMy90YWJsZXJhbmdlOmM4MzEzOTk0YzE1YTQ0MGM4Y2I2NTUyMDQ2MTdmZmMzXzMtMS0xLTEtNzc5MDg_d605f2cc-ff55-461e-b26e-f6051447faed"
      unitRef="usd">4349000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpjODMxMzk5NGMxNWE0NDBjOGNiNjU1MjA0NjE3ZmZjMy90YWJsZXJhbmdlOmM4MzEzOTk0YzE1YTQ0MGM4Y2I2NTUyMDQ2MTdmZmMzXzMtMy0xLTEtNzc5MDg_adca2969-e05b-407a-b952-97a9bc077f6a"
      unitRef="usd">1509000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpjODMxMzk5NGMxNWE0NDBjOGNiNjU1MjA0NjE3ZmZjMy90YWJsZXJhbmdlOmM4MzEzOTk0YzE1YTQ0MGM4Y2I2NTUyMDQ2MTdmZmMzXzQtMS0xLTEtNzc5MDg_fb58971b-47b9-456b-af4c-9e086652fe2d"
      unitRef="usd">18936000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTIvZnJhZzoxNzZkMTIyM2IxOTE0NGYxYmVlYzc3Y2U1YTMzOWE3NS90YWJsZTpjODMxMzk5NGMxNWE0NDBjOGNiNjU1MjA0NjE3ZmZjMy90YWJsZXJhbmdlOmM4MzEzOTk0YzE1YTQ0MGM4Y2I2NTUyMDQ2MTdmZmMzXzQtMy0xLTEtNzc5MDg_0ee64d99-a7d9-4e2d-a9e9-98d6701d7971"
      unitRef="usd">18780000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzE3NDk_535b8146-9f99-47b6-a833-77194faed1a6">Loan and Security Agreement and Senior Secured Credit Facilities Agreement&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Loan and Security Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In June 2021, the Company amended and restated its loan and security agreement (the &#x201c;Loan and Security Agreement&#x201d;) with Silicon Valley Bank. The Loan and Security Agreement provided a senior secured revolving credit facility of up to $25.0&#160;million or 80% of eligible accounts receivable less certain reserves, minus the aggregate principal amount of all outstanding advances. Interest accrued on advances under the revolving line of credit at a variable rate equal to the greater of prime rate or 3.25%. An unused revolver fee in the amount of 0.40% per annum of the average unused portion of the revolver line was charged and was payable quarterly in arrears in any quarter where the average closing outstanding balance was less than $5.0&#160;million. The maturity date of the revolving line of credit was June 6, 2024. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As described further below, on October 17, 2022, the Company entered into a Senior Secured Credit Facilities Credit Agreement. In connection with the entry into the Senior Secured Credit Facilities Credit Agreement, the Company&#x2019;s existing Loan and Security Agreement, as amended, was terminated. There were no outstanding advances under the Loan and Security Agreement upon its termination. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Senior Secured Credit Facilities Agreement&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;On October 17, 2022, the Company entered into a Senior Secured Credit Facilities Credit Agreement (the &#x201c;Credit Agreement&#x201d;) with the several lenders parties thereto (the &#x201c;Lenders&#x201d;), and Silicon Valley Bank (&#x201c;SVB&#x201d;), as administrative agent, lead arranger, issuing lender, and swingline lender. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Credit Agreement provides a revolving credit facility in an aggregate principal amount of $110.0&#160;million (&#x201c;the Revolving Credit Facility&#x201d;), including a $25.0&#160;million letter of credit sub-facility and a $25.0&#160;million swingline sub-facility. The Company&#x2019;s obligations under the Revolving Credit Facility and the letter of credit sub-facility (described in Note 9) with SVB are secured by substantially all of its assets excluding its intellectual property. The Company may, subject to certain customary conditions, on one or more occasions increase commitments under the Revolving Credit Facility in an amount not to exceed $90.0&#160;million in the aggregate (the &#x201c;Incremental Facility&#x201d;). Each Lender will have discretion to determine whether it will participate in any Incremental Facility. The Credit Agreement matures on October 17, 2027.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Borrowings under the Revolving Credit Facility will accrue interest at rates equal, at the Company&#x2019;s election, to (i) the applicable secured overnight financing rate (&#x201c;SOFR&#x201d;), plus the applicable margin for such loans, or (ii) the alternate base rate (&#x201c;ABR&#x201d;), which is defined as the highest of (a) the prime rate in effect from time to time, (b) the federal funds effective rate in effect from time to time plus 0.50%, and (c) the adjusted term SOFR for a one (1) month tenor in effect from time to time plus 1.0%, plus the applicable margin for such loans. The applicable margin for borrowings bearing interest on the SOFR ranges from 2.00% to 2.75%, and the applicable margin for borrowings bearing interest based on the ABR ranges from 1.00% to 1.75%. The Company will pay a quarterly commitment fee during the term of the Credit Agreement for the non-use of available funds ranging from 0.25% to 0.35%. In addition, the Credit Agreement provides a mechanism to determine a successor reference rate to the applicable reference rate if, among other things, the applicable reference rate becomes unavailable or is generally replaced as a benchmark interest rate. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Credit Agreement contains customary representations and warranties as well as customary affirmative and negative covenants. Negative covenants include, among others, limitations on incurrence of indebtedness, liens, disposition of property and investments by the Company and its subsidiaries. In addition, the Credit Agreement requires the Company to maintain certain interest coverage, leverage and senior leverage ratios. The Company was in compliance with these covenants as of December&#160;31, 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Credit Agreement contains customary events of default. Upon the occurrence and during the continuance of an event of default, the Lenders may declare the outstanding advances and all other obligations under the Credit Agreement immediately due and payable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company may use amounts borrowed under the Credit Agreement to refinance the Existing Credit Agreement, for general corporate purposes or working capital financing. The Company may borrow additional amounts under the Credit Agreement from time to time as opportunities and needs arise.&lt;/span&gt;&lt;/div&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="ie9a9804199be4a16b445db7e4b68efea_I20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzY1OTcwNjk3NzQ0MjI_ae287520-8d78-46c4-ba31-2c81511dee12"
      unitRef="usd">25000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <pubm:LineOfCreditFacilityBorrowingCapacityPercentageOfEligibleAccountsReceivableNet
      contextRef="ie9a9804199be4a16b445db7e4b68efea_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzY1OTcwNjk3NzQ0Mzc_f7c5259a-5911-4472-99f7-592bdeee44e6"
      unitRef="number">0.80</pubm:LineOfCreditFacilityBorrowingCapacityPercentageOfEligibleAccountsReceivableNet>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="ie9a9804199be4a16b445db7e4b68efea_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzUxMA_626fa410-2f67-44de-ae22-55ce5bdeaf07"
      unitRef="number">0.0325</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="if0f97c56b006401f875d8c5e8aa27aeb_D20210601-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzYzNg_de9a91fd-fd79-46f2-ba70-5131b90fe97d"
      unitRef="number">0.0040</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <pubm:LineOfCreditFacilityBorrowingCapacityUnusedCapacityFeeClosingBalanceThreshold
      contextRef="ie9a9804199be4a16b445db7e4b68efea_I20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzY1OTcwNjk3NzQ0NDI_f251fc3f-55b7-424b-afb9-87a722f0cd65"
      unitRef="usd">5000000</pubm:LineOfCreditFacilityBorrowingCapacityUnusedCapacityFeeClosingBalanceThreshold>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="i933f1f454d514a429b8fa6a6af5f88a4_I20221017"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzMyOTg1MzQ4OTA2NjE_d79a81b1-7cb7-4c9f-aaf6-c0c4e6ce0bf0"
      unitRef="usd">110000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="ie48183ae3a2840b49030295d91933ee8_I20221017"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzMyOTg1MzQ4OTA2ODA_8846a821-778f-4639-8284-b3dcaea8190a"
      unitRef="usd">25000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="id0cea25136334d36a932e5e946626c7d_I20221017"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzMyOTg1MzQ4OTA2OTg_6c787ac1-96e5-48f2-a0de-0dcfd9489d85"
      unitRef="usd">25000000</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <pubm:LineOfCreditFacilityAccordionFeatureIncreaseLimit
      contextRef="i933f1f454d514a429b8fa6a6af5f88a4_I20221017"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzMyOTg1MzQ4OTA3NjM_6746f0b6-94e9-4d07-a822-2e146d816761"
      unitRef="usd">90000000</pubm:LineOfCreditFacilityAccordionFeatureIncreaseLimit>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="ibbcabe4256ec42c7bef2071b836aad09_D20221017-20221017"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzY1OTcwNjk3NzQzMDQ_82ba4e54-ce76-4d04-961c-2c55747a8604"
      unitRef="number">0.0050</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="i9d02e10a3de84a78a0e5cc881ecf1dd4_D20221017-20221017"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzMyOTg1MzQ4OTA5MTE_72afe4cf-cd30-4c95-b925-d264192fb134"
      unitRef="number">0.010</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="ieeb2fdc5c92d4db0825a8e06f5ff9707_D20221017-20221017"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzMyOTg1MzQ4OTA5MTc_4be6a3f3-e871-419d-a132-12766a2d7dd9"
      unitRef="number">0.0200</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="if174418d7c2a4f1d94934757c178f76a_D20221017-20221017"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzMyOTg1MzQ4OTA5MjQ_5eaf64af-86ac-4900-977d-e6b49d2db79b"
      unitRef="number">0.0275</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="i15947178e73f4ea29f91ee02e83cf592_D20221017-20221017"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzMyOTg1MzQ4OTA5MzE_5c3fcf4e-3b67-4413-832c-43a09f9dcc64"
      unitRef="number">0.0100</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:DebtInstrumentBasisSpreadOnVariableRate1
      contextRef="i26537c769f4a41febf20997923c889c6_D20221017-20221017"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzMyOTg1MzQ4OTA5Mzg_9a23ff8d-6b1c-4ad6-9c32-918a84c73bf1"
      unitRef="number">0.0175</us-gaap:DebtInstrumentBasisSpreadOnVariableRate1>
    <us-gaap:LineOfCreditFacilityCommitmentFeePercentage
      contextRef="i6b89b43039ac42aabd9a2e724a006e78_D20221017-20221017"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzMyOTg1MzQ4OTA5NDU_ced009f9-f383-4e25-b79b-cc808b1516d1"
      unitRef="number">0.0025</us-gaap:LineOfCreditFacilityCommitmentFeePercentage>
    <us-gaap:LineOfCreditFacilityCommitmentFeePercentage
      contextRef="ifea34ca1ee954aec9324c2403ba81768_D20221017-20221017"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTUvZnJhZzo5YjA4ZmViOTQ3Yzg0ZmIyODZjN2Q1YWM4MDgzZjUxNC90ZXh0cmVnaW9uOjliMDhmZWI5NDdjODRmYjI4NmM3ZDVhYzgwODNmNTE0XzMyOTg1MzQ4OTA5NTI_30d35b32-0f5d-4f5b-a802-d0a8beb8f470"
      unitRef="number">0.0035</us-gaap:LineOfCreditFacilityCommitmentFeePercentage>
    <us-gaap:LesseeFinanceLeasesTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90ZXh0cmVnaW9uOjRmZjBiMWU4ZTQ2YTRiYzM4OTYwNjM1ZmFhNzhiZmRjXzI5MTM_f10796dc-12f7-43fe-aaeb-f8961d6aeb95">Leases&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company determines if an arrangement is or contains a lease at inception, which is the date on which the terms of the contract are agreed to, and the agreement creates enforceable rights and obligations. Under Topic 842, a contract is or contains a lease when (i) explicitly or implicitly identified assets have been deployed in the contract and (ii) the customer obtains substantially all of the economic benefits from the use of that underlying asset and directs how and for what purpose the asset is used during the term of the contract. The Company also considers whether its service arrangements include the right to control the use of an asset.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company leases office facilities from unrelated parties under operating lease agreements that have initial terms ranging from 2 to 10 years. Included in an office lease the Company also leases furniture and fixtures under a finance lease with a seven year term with a purchase option at the end of the term. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The allocation of lease payments was determined based on the relative standalone price of the separate office and furniture components. Some leases include one or more options to renew, generally at our sole discretion, with renewal terms that can extend the lease term up to 5 additional years. In addition, certain leases contain termination options, where the rights to terminate are held by either the Company, the lessor, or both parties. These options to extend or terminate a lease are not included in the lease terms as the Company is not reasonably certain that they will exercise that option. The Company&#x2019;s leases generally do not contain any material restrictive covenants.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease cost is recognized on a straight-line basis over the lease term. Finance lease cost is recognized as a combination of the amortization expense for the right-of-use assets and interest expense for the outstanding lease liabilities, and results in a front-loaded expense pattern over the lease term. Short-term and variable lease costs are not material to the Company&#x2019;s consolidated financial statements.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The components of lease cost were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/div&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease cost&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,104&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance lease cost - amortization of right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;14&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance lease cost - interest on lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total lease cost&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7,068&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,120&#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:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental cash flow information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/div&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash paid for amounts included in measurement of lease liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating cash outflows - payments on operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,015&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,283&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Right-of-use assets obtained in exchange for new lease obligations:&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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;10,424&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,887&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;869&#160;&lt;/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:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental balance sheet information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/div&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,206&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21,613&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease liabilities, current&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,676&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #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:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,864&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease liabilities, non-current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,915&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;17,842&#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 23.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,591&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21,706&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top: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 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Furniture and fixtures&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;869&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accumulated depreciation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(188)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(14)&lt;/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 23.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzExLTAtMS0xLTc3OTA4_1e8875d2-50dc-402d-8ecb-a627de31f130"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzExLTAtMS0xLTc3OTA4_ae550b7a-e58b-4278-a8f5-d695a63c66fa"&gt;Furniture and fixtures, net&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;681&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;855&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;125&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;119&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other liabilities, non-current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;616&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;741&#160;&lt;/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 23.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzE1LTAtMS0xLTc3OTA4_63b1ab0a-6935-4156-999b-01f3afe01711"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzE1LTAtMS0xLTc3OTA4_e2d02111-7a12-4d7c-93ba-d76ea743e2c8"&gt;Total finance lease liabilities&lt;/span&gt;&lt;/span&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;741&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;860&#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;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other information related to leases was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/div&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Weighted-average remaining lease term:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4.6 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6.0 years&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 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5.3 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6.3 years&lt;/span&gt;&lt;/div&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Weighted-average discount rate:&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: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 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3.22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;%&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.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;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;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.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;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;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, the maturities of lease liabilities under operating and finance leases were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Operating 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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Finance 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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Year ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,580&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,499&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;145&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,644&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,129&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;149&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,278&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,347&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;153&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,500&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;158&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,414&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,021&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total minimum lease payments&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,651&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;786&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;29,437&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Less: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2,060)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(45)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2,105)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total present value of lease liabilities&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,591&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;741&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;27,332&#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:LesseeFinanceLeasesTextBlock>
    <us-gaap:LesseeOperatingLeasesTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90ZXh0cmVnaW9uOjRmZjBiMWU4ZTQ2YTRiYzM4OTYwNjM1ZmFhNzhiZmRjXzI5MTQ_e9af44f9-922f-4143-8ac9-d08b6cb9e8d0">Leases&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company determines if an arrangement is or contains a lease at inception, which is the date on which the terms of the contract are agreed to, and the agreement creates enforceable rights and obligations. Under Topic 842, a contract is or contains a lease when (i) explicitly or implicitly identified assets have been deployed in the contract and (ii) the customer obtains substantially all of the economic benefits from the use of that underlying asset and directs how and for what purpose the asset is used during the term of the contract. The Company also considers whether its service arrangements include the right to control the use of an asset.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company leases office facilities from unrelated parties under operating lease agreements that have initial terms ranging from 2 to 10 years. Included in an office lease the Company also leases furniture and fixtures under a finance lease with a seven year term with a purchase option at the end of the term. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The allocation of lease payments was determined based on the relative standalone price of the separate office and furniture components. Some leases include one or more options to renew, generally at our sole discretion, with renewal terms that can extend the lease term up to 5 additional years. In addition, certain leases contain termination options, where the rights to terminate are held by either the Company, the lessor, or both parties. These options to extend or terminate a lease are not included in the lease terms as the Company is not reasonably certain that they will exercise that option. The Company&#x2019;s leases generally do not contain any material restrictive covenants.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease cost is recognized on a straight-line basis over the lease term. Finance lease cost is recognized as a combination of the amortization expense for the right-of-use assets and interest expense for the outstanding lease liabilities, and results in a front-loaded expense pattern over the lease term. Short-term and variable lease costs are not material to the Company&#x2019;s consolidated financial statements.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The components of lease cost were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/div&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease cost&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,104&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance lease cost - amortization of right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;14&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance lease cost - interest on lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total lease cost&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7,068&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,120&#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:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental cash flow information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/div&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash paid for amounts included in measurement of lease liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating cash outflows - payments on operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,015&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,283&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Right-of-use assets obtained in exchange for new lease obligations:&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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;10,424&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,887&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;869&#160;&lt;/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:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental balance sheet information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/div&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,206&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21,613&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease liabilities, current&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,676&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #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:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,864&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease liabilities, non-current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,915&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;17,842&#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 23.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,591&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21,706&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top: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 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Furniture and fixtures&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;869&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accumulated depreciation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(188)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(14)&lt;/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 23.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzExLTAtMS0xLTc3OTA4_1e8875d2-50dc-402d-8ecb-a627de31f130"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzExLTAtMS0xLTc3OTA4_ae550b7a-e58b-4278-a8f5-d695a63c66fa"&gt;Furniture and fixtures, net&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;681&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;855&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;125&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;119&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other liabilities, non-current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;616&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;741&#160;&lt;/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 23.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzE1LTAtMS0xLTc3OTA4_63b1ab0a-6935-4156-999b-01f3afe01711"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzE1LTAtMS0xLTc3OTA4_e2d02111-7a12-4d7c-93ba-d76ea743e2c8"&gt;Total finance lease liabilities&lt;/span&gt;&lt;/span&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;741&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;860&#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;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other information related to leases was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/div&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Weighted-average remaining lease term:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4.6 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6.0 years&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 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5.3 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6.3 years&lt;/span&gt;&lt;/div&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Weighted-average discount rate:&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: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 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3.22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;%&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.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;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;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.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;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;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, the maturities of lease liabilities under operating and finance leases were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Operating 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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Finance 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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Year ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,580&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,499&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;145&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,644&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,129&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;149&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,278&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,347&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;153&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,500&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;158&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,414&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,021&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total minimum lease payments&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,651&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;786&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;29,437&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Less: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2,060)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(45)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2,105)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total present value of lease liabilities&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,591&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;741&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;27,332&#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:LesseeOperatingLeasesTextBlock>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="i5b1b1ef57eeb4e0ea87637f75385ca1f_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90ZXh0cmVnaW9uOjRmZjBiMWU4ZTQ2YTRiYzM4OTYwNjM1ZmFhNzhiZmRjXzgwOA_33b16e02-6f75-4180-b040-fd09967ec793">P2Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="i81668e335aaf4d31b844154bf570f4bd_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90ZXh0cmVnaW9uOjRmZjBiMWU4ZTQ2YTRiYzM4OTYwNjM1ZmFhNzhiZmRjXzgxNA_ab0a2225-9e0f-4bf2-b630-49b7991a7e5f">P10Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <us-gaap:LesseeOperatingLeaseTermOfContract
      contextRef="i8fe825dd3dda4fba9849fb119b5a1698_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90ZXh0cmVnaW9uOjRmZjBiMWU4ZTQ2YTRiYzM4OTYwNjM1ZmFhNzhiZmRjXzI5MDk_bec0a89f-be52-4d60-95b2-48963a4f8af2">P7Y</us-gaap:LesseeOperatingLeaseTermOfContract>
    <pubm:LesseeOperatingLeaseTermOfContractExtensionPeriod
      contextRef="i8fe825dd3dda4fba9849fb119b5a1698_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90ZXh0cmVnaW9uOjRmZjBiMWU4ZTQ2YTRiYzM4OTYwNjM1ZmFhNzhiZmRjXzU0OTc1NTgxODIyOQ_43a0ef7f-0c76-40d9-8ad7-e7f3ca985eef">P5Y</pubm:LesseeOperatingLeaseTermOfContractExtensionPeriod>
    <us-gaap:LeaseCostTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90ZXh0cmVnaW9uOjRmZjBiMWU4ZTQ2YTRiYzM4OTYwNjM1ZmFhNzhiZmRjXzI5MTA_e2677530-20d2-4c3c-bb1d-607ce617158a">&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The components of lease cost were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/div&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease cost&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,876&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,104&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance lease cost - amortization of right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;174&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;14&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance lease cost - interest on lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total lease cost&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7,068&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,120&#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:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental cash flow information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/div&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cash paid for amounts included in measurement of lease liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating cash outflows - payments on operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,015&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,283&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Right-of-use assets obtained in exchange for new lease obligations:&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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;10,424&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,887&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;869&#160;&lt;/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:LeaseCostTableTextBlock>
    <us-gaap:OperatingLeaseCost
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpjMTE1NmVlMWRkZTU0ODUyYTg0NmNiOGUxMjBhNjI3Ny90YWJsZXJhbmdlOmMxMTU2ZWUxZGRlNTQ4NTJhODQ2Y2I4ZTEyMGE2Mjc3XzItMS0xLTEtODU2OTI_309896e2-8cd7-463d-875e-a69d234ce047"
      unitRef="usd">6876000</us-gaap:OperatingLeaseCost>
    <us-gaap:OperatingLeaseCost
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpjMTE1NmVlMWRkZTU0ODUyYTg0NmNiOGUxMjBhNjI3Ny90YWJsZXJhbmdlOmMxMTU2ZWUxZGRlNTQ4NTJhODQ2Y2I4ZTEyMGE2Mjc3XzEtMS0xLTEtNzc5MDg_9478175f-23a1-41cd-bd4b-13f8379bc98c"
      unitRef="usd">2104000</us-gaap:OperatingLeaseCost>
    <us-gaap:FinanceLeaseRightOfUseAssetAmortization
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpjMTE1NmVlMWRkZTU0ODUyYTg0NmNiOGUxMjBhNjI3Ny90YWJsZXJhbmdlOmMxMTU2ZWUxZGRlNTQ4NTJhODQ2Y2I4ZTEyMGE2Mjc3XzMtMS0xLTEtODU2OTI_2fc54b95-7788-43dc-a2fe-ae25975e4b08"
      unitRef="usd">174000</us-gaap:FinanceLeaseRightOfUseAssetAmortization>
    <us-gaap:FinanceLeaseRightOfUseAssetAmortization
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpjMTE1NmVlMWRkZTU0ODUyYTg0NmNiOGUxMjBhNjI3Ny90YWJsZXJhbmdlOmMxMTU2ZWUxZGRlNTQ4NTJhODQ2Y2I4ZTEyMGE2Mjc3XzItMS0xLTEtNzc5MDg_666ec32f-9f5d-4dcd-9d48-cd0d46b59c76"
      unitRef="usd">14000</us-gaap:FinanceLeaseRightOfUseAssetAmortization>
    <us-gaap:FinanceLeaseInterestExpense
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpjMTE1NmVlMWRkZTU0ODUyYTg0NmNiOGUxMjBhNjI3Ny90YWJsZXJhbmdlOmMxMTU2ZWUxZGRlNTQ4NTJhODQ2Y2I4ZTEyMGE2Mjc3XzQtMS0xLTEtODU2OTI_d2ee0953-4e55-4003-afc4-f0b52f0b6785"
      unitRef="usd">18000</us-gaap:FinanceLeaseInterestExpense>
    <us-gaap:FinanceLeaseInterestExpense
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpjMTE1NmVlMWRkZTU0ODUyYTg0NmNiOGUxMjBhNjI3Ny90YWJsZXJhbmdlOmMxMTU2ZWUxZGRlNTQ4NTJhODQ2Y2I4ZTEyMGE2Mjc3XzMtMS0xLTEtNzc5MDg_b11ad9b8-403f-488f-825f-c7aa00be4f65"
      unitRef="usd">2000</us-gaap:FinanceLeaseInterestExpense>
    <us-gaap:LeaseCost
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpjMTE1NmVlMWRkZTU0ODUyYTg0NmNiOGUxMjBhNjI3Ny90YWJsZXJhbmdlOmMxMTU2ZWUxZGRlNTQ4NTJhODQ2Y2I4ZTEyMGE2Mjc3XzUtMS0xLTEtODU2OTI_1e909d2f-c7d5-44ea-8215-aadba7067f62"
      unitRef="usd">7068000</us-gaap:LeaseCost>
    <us-gaap:LeaseCost
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpjMTE1NmVlMWRkZTU0ODUyYTg0NmNiOGUxMjBhNjI3Ny90YWJsZXJhbmdlOmMxMTU2ZWUxZGRlNTQ4NTJhODQ2Y2I4ZTEyMGE2Mjc3XzQtMS0xLTEtNzc5MDg_552d6820-f4ac-4a86-9b91-2bdfd2ec812b"
      unitRef="usd">2120000</us-gaap:LeaseCost>
    <us-gaap:OperatingLeasePayments
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmYTU0NWFlYmI0ZTk0MzdhODk1NTIwNzQ4NTE2YTNkYy90YWJsZXJhbmdlOmZhNTQ1YWViYjRlOTQzN2E4OTU1MjA3NDg1MTZhM2RjXzMtMS0xLTEtODU3MDI_50decb40-70ec-4e55-9b38-334c03b225ab"
      unitRef="usd">5015000</us-gaap:OperatingLeasePayments>
    <us-gaap:OperatingLeasePayments
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmYTU0NWFlYmI0ZTk0MzdhODk1NTIwNzQ4NTE2YTNkYy90YWJsZXJhbmdlOmZhNTQ1YWViYjRlOTQzN2E4OTU1MjA3NDg1MTZhM2RjXzItMS0xLTEtNzc5MDg_691ddf98-a0fe-4814-8ed5-b609498c3a84"
      unitRef="usd">2283000</us-gaap:OperatingLeasePayments>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmYTU0NWFlYmI0ZTk0MzdhODk1NTIwNzQ4NTE2YTNkYy90YWJsZXJhbmdlOmZhNTQ1YWViYjRlOTQzN2E4OTU1MjA3NDg1MTZhM2RjXzUtMS0xLTEtODU3MDI_f53589e5-d3e9-463d-b831-1b209c5d2e99"
      unitRef="usd">10424000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmYTU0NWFlYmI0ZTk0MzdhODk1NTIwNzQ4NTE2YTNkYy90YWJsZXJhbmdlOmZhNTQ1YWViYjRlOTQzN2E4OTU1MjA3NDg1MTZhM2RjXzUtMS0xLTEtNzc5MDg_1388fcd4-4b74-4f24-8082-2cc7ecb8f177"
      unitRef="usd">20887000</us-gaap:RightOfUseAssetObtainedInExchangeForOperatingLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmYTU0NWFlYmI0ZTk0MzdhODk1NTIwNzQ4NTE2YTNkYy90YWJsZXJhbmdlOmZhNTQ1YWViYjRlOTQzN2E4OTU1MjA3NDg1MTZhM2RjXzYtMS0xLTEtODU3MDI_4d760713-8783-4432-b8d4-eab975b6e7f5"
      unitRef="usd">0</us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability>
    <us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmYTU0NWFlYmI0ZTk0MzdhODk1NTIwNzQ4NTE2YTNkYy90YWJsZXJhbmdlOmZhNTQ1YWViYjRlOTQzN2E4OTU1MjA3NDg1MTZhM2RjXzYtMS0xLTEtNzc5MDg_1c5ae0a0-bc3b-40b9-a91d-f1575e2efc68"
      unitRef="usd">869000</us-gaap:RightOfUseAssetObtainedInExchangeForFinanceLeaseLiability>
    <pubm:AssetsAndLiabilitiesLesseeTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90ZXh0cmVnaW9uOjRmZjBiMWU4ZTQ2YTRiYzM4OTYwNjM1ZmFhNzhiZmRjXzI5MTE_d6cbc40d-bd55-4770-9c32-bc780f62ce39">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Supplemental balance sheet information related to leases was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/div&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease right-of-use assets&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,206&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21,613&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease liabilities, current&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,676&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #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:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,864&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating lease liabilities, non-current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,915&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;17,842&#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 23.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total operating lease liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,591&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21,706&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top: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 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Furniture and fixtures&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;869&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accumulated depreciation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(188)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(14)&lt;/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 23.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzExLTAtMS0xLTc3OTA4_1e8875d2-50dc-402d-8ecb-a627de31f130"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzExLTAtMS0xLTc3OTA4_ae550b7a-e58b-4278-a8f5-d695a63c66fa"&gt;Furniture and fixtures, net&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;681&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;855&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accrued liabilities&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;125&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;119&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:3pt double #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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other liabilities, non-current&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;616&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;741&#160;&lt;/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 23.5pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzE1LTAtMS0xLTc3OTA4_63b1ab0a-6935-4156-999b-01f3afe01711"&gt;&lt;span style="-sec-ix-hidden:id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzE1LTAtMS0xLTc3OTA4_e2d02111-7a12-4d7c-93ba-d76ea743e2c8"&gt;Total finance lease liabilities&lt;/span&gt;&lt;/span&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;741&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;860&#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;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other information related to leases was as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:71.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/div&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:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Weighted-average remaining lease term:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4.6 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6.0 years&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 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5.3 years&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:right"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6.3 years&lt;/span&gt;&lt;/div&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:700;line-height:120%"&gt;Weighted-average discount rate:&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: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 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Operating leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3.22&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;%&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Finance leases&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.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;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;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.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;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;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</pubm:AssetsAndLiabilitiesLesseeTableTextBlock>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzMtMS0xLTEtODU3MDQ_d6ac4fbb-e21e-41bc-a5d5-308447494a5e"
      unitRef="usd">26206000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzItMS0xLTEtNzc5MDg_5ef38490-8c7f-446a-8224-caf65224384f"
      unitRef="usd">21613000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzQtMS0xLTEtODU3MDQ_962527bb-a4de-489c-b3a2-496c24020995"
      unitRef="usd">5676000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzQtMS0xLTEtNzc5MDg_ccb60971-f51c-4f84-9ad9-e22fb617d011"
      unitRef="usd">3864000</us-gaap:OperatingLeaseLiabilityCurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzUtMS0xLTEtODU3MDQ_11438487-1253-4ccc-a24e-e26d69a603be"
      unitRef="usd">20915000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiabilityNoncurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzUtMS0xLTEtNzc5MDg_31406b17-0681-4f3a-b7f3-ec48fcd683ee"
      unitRef="usd">17842000</us-gaap:OperatingLeaseLiabilityNoncurrent>
    <us-gaap:OperatingLeaseLiability
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzYtMS0xLTEtODU3MDQ_0e2c80b3-9527-417c-99b3-9600c6303a47"
      unitRef="usd">26591000</us-gaap:OperatingLeaseLiability>
    <us-gaap:OperatingLeaseLiability
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzYtMS0xLTEtNzc5MDg_1ab1b7e4-7152-4621-b8e0-df2cb2ec0cd5"
      unitRef="usd">21706000</us-gaap:OperatingLeaseLiability>
    <us-gaap:FinanceLeaseRightOfUseAssetBeforeAccumulatedAmortization
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzgtMS0xLTEtODU3MDQ_a36d83d0-6127-4aed-9957-000c4ccbee7b"
      unitRef="usd">869000</us-gaap:FinanceLeaseRightOfUseAssetBeforeAccumulatedAmortization>
    <us-gaap:FinanceLeaseRightOfUseAssetBeforeAccumulatedAmortization
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzktMS0xLTEtNzc5MDg_cf8afcf9-96db-4dbc-a770-245663e79c98"
      unitRef="usd">869000</us-gaap:FinanceLeaseRightOfUseAssetBeforeAccumulatedAmortization>
    <us-gaap:FinanceLeaseRightOfUseAssetAccumulatedAmortization
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzktMS0xLTEtODU3MDQ_861e2631-f1ea-476e-a40b-2d18a6b0f30e"
      unitRef="usd">188000</us-gaap:FinanceLeaseRightOfUseAssetAccumulatedAmortization>
    <us-gaap:FinanceLeaseRightOfUseAssetAccumulatedAmortization
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzEwLTEtMS0xLTc3OTA4_90a88e5e-8314-4555-826d-b4ef231b3b3e"
      unitRef="usd">14000</us-gaap:FinanceLeaseRightOfUseAssetAccumulatedAmortization>
    <us-gaap:FinanceLeaseRightOfUseAsset
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzEwLTEtMS0xLTg1NzA0_c8bebee8-dd6c-4661-8aee-46b4e779f0e6"
      unitRef="usd">681000</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseRightOfUseAsset
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzExLTEtMS0xLTc3OTA4_d03b548f-8928-449f-a52f-8874d9d94abd"
      unitRef="usd">855000</us-gaap:FinanceLeaseRightOfUseAsset>
    <us-gaap:FinanceLeaseLiabilityCurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzExLTEtMS0xLTg1NzA0_01d1eca5-8441-4196-af33-2a49dbed8bad"
      unitRef="usd">125000</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityCurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzEzLTEtMS0xLTc3OTA4_351b66b0-445f-42e9-8543-b99e88e5a722"
      unitRef="usd">119000</us-gaap:FinanceLeaseLiabilityCurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzEyLTEtMS0xLTg1NzA0_04c7587b-81f3-4188-9183-ffcaa02bfb39"
      unitRef="usd">616000</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:FinanceLeaseLiabilityNoncurrent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzE0LTEtMS0xLTc3OTA4_d260896a-3a63-4cb0-862c-1f7223d0b832"
      unitRef="usd">741000</us-gaap:FinanceLeaseLiabilityNoncurrent>
    <us-gaap:FinanceLeaseLiability
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzEzLTEtMS0xLTg1NzA0_8a341720-6a7f-4fad-907d-bbafe23ac485"
      unitRef="usd">741000</us-gaap:FinanceLeaseLiability>
    <us-gaap:FinanceLeaseLiability
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZToxNTQ5YTk3N2JkNGM0ZTEzYThhMWFhYjAwZDFlZTRlZi90YWJsZXJhbmdlOjE1NDlhOTc3YmQ0YzRlMTNhOGExYWFiMDBkMWVlNGVmXzE1LTEtMS0xLTc3OTA4_2e46c157-42bf-4b19-83e2-4aaf8f7dcc06"
      unitRef="usd">860000</us-gaap:FinanceLeaseLiability>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTo3NzZhMzc3YzVlYzE0NDcxYWZjOGEzY2ZiNzBiNzQyNi90YWJsZXJhbmdlOjc3NmEzNzdjNWVjMTQ0NzFhZmM4YTNjZmI3MGI3NDI2XzMtMS0xLTEtODU3MDYvdGV4dHJlZ2lvbjozZjhjNDY3Nzg2NTk0NTBiOTQ2NWFlZDFhNTgyNDljNV81NDk3NTU4MTM4OTg_0ce69469-9ab0-41a7-aa6c-d9051f417ad5">P4Y7M6D</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTo3NzZhMzc3YzVlYzE0NDcxYWZjOGEzY2ZiNzBiNzQyNi90YWJsZXJhbmdlOjc3NmEzNzdjNWVjMTQ0NzFhZmM4YTNjZmI3MGI3NDI2XzItMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjo3ZGQxZjJkMTYxNWQ0ZjMwOGYyMjAxZGJlOGFkYzRiYl81NDk3NTU4MTM5MDg_66f2833e-6079-4d44-a7e8-153cea877ffc">P6Y</us-gaap:OperatingLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTo3NzZhMzc3YzVlYzE0NDcxYWZjOGEzY2ZiNzBiNzQyNi90YWJsZXJhbmdlOjc3NmEzNzdjNWVjMTQ0NzFhZmM4YTNjZmI3MGI3NDI2XzQtMS0xLTEtODU3MDgvdGV4dHJlZ2lvbjozNDRlMDVhYzcyZDY0NTY3OTRiNTUwMjNmNGY0YTQzYl81NDk3NTU4MTM4OTg_a6209e6d-e63d-40e7-b24a-0a7b8bf58efb">P5Y3M18D</us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTo3NzZhMzc3YzVlYzE0NDcxYWZjOGEzY2ZiNzBiNzQyNi90YWJsZXJhbmdlOjc3NmEzNzdjNWVjMTQ0NzFhZmM4YTNjZmI3MGI3NDI2XzMtMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjo1NTFkNmUwZDllNjQ0NzE2YjJmNzY2ODAzOTAzN2I0M181NDk3NTU4MTM5MTg_ab79f23f-8092-469d-b9ad-58c18cb5e1f7">P6Y3M18D</us-gaap:FinanceLeaseWeightedAverageRemainingLeaseTerm1>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTo3NzZhMzc3YzVlYzE0NDcxYWZjOGEzY2ZiNzBiNzQyNi90YWJsZXJhbmdlOjc3NmEzNzdjNWVjMTQ0NzFhZmM4YTNjZmI3MGI3NDI2XzYtMS0xLTEtODU3MTA_ed8c45b6-cee9-42a3-9b6c-c95239b16bd9"
      unitRef="number">0.0322</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTo3NzZhMzc3YzVlYzE0NDcxYWZjOGEzY2ZiNzBiNzQyNi90YWJsZXJhbmdlOjc3NmEzNzdjNWVjMTQ0NzFhZmM4YTNjZmI3MGI3NDI2XzYtMS0xLTEtNzc5MDg_c7077811-a4aa-4006-baaa-0a364c0da159"
      unitRef="number">0.0220</us-gaap:OperatingLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTo3NzZhMzc3YzVlYzE0NDcxYWZjOGEzY2ZiNzBiNzQyNi90YWJsZXJhbmdlOjc3NmEzNzdjNWVjMTQ0NzFhZmM4YTNjZmI3MGI3NDI2XzctMS0xLTEtODU3MTA_9d4cd98a-e818-4d62-87f6-789d8cc83395"
      unitRef="number">0.0224</us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTo3NzZhMzc3YzVlYzE0NDcxYWZjOGEzY2ZiNzBiNzQyNi90YWJsZXJhbmdlOjc3NmEzNzdjNWVjMTQ0NzFhZmM4YTNjZmI3MGI3NDI2XzctMS0xLTEtNzc5MDg_377d5e49-3d2d-4443-b37d-aa4aa4416704"
      unitRef="number">0.0224</us-gaap:FinanceLeaseWeightedAverageDiscountRatePercent>
    <us-gaap:FinanceLeaseLiabilityMaturityTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90ZXh0cmVnaW9uOjRmZjBiMWU4ZTQ2YTRiYzM4OTYwNjM1ZmFhNzhiZmRjXzI5MDc_8652cab8-8806-4597-b7a4-21fe3a85bfa4">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, the maturities of lease liabilities under operating and finance leases were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Operating 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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Finance 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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Year ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,580&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,499&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;145&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,644&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,129&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;149&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,278&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,347&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;153&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,500&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;158&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,414&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,021&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total minimum lease payments&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,651&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;786&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;29,437&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Less: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2,060)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(45)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2,105)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total present value of lease liabilities&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,591&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;741&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;27,332&#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:FinanceLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityMaturityTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90ZXh0cmVnaW9uOjRmZjBiMWU4ZTQ2YTRiYzM4OTYwNjM1ZmFhNzhiZmRjXzI5MDg_43e1de01-2205-43b6-aa80-43a6221a5fc8">&lt;div style="margin-top:9pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, the maturities of lease liabilities under operating and finance leases were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt;text-align:justify"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Operating 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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Finance 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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Year ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,440&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,580&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,499&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;145&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,644&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,129&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;149&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,278&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,347&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;153&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,500&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,256&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;158&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,414&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Thereafter&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;41&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,021&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total minimum lease payments&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,651&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;786&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;29,437&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Less: imputed interest&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2,060)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(45)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2,105)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total present value of lease liabilities&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,591&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;741&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;27,332&#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:LesseeOperatingLeaseLiabilityMaturityTableTextBlock>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzEtMS0xLTEtNzc5MDg_cb44abe6-f7c1-45ae-a05e-96eff8d0f94f"
      unitRef="usd">6440000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueNextTwelveMonths>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzEtMy0xLTEtNzc5MDg_9037c75f-32f4-49be-8b17-d620b74c1c0e"
      unitRef="usd">140000</us-gaap:FinanceLeaseLiabilityPaymentsDueNextTwelveMonths>
    <pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaidYearOne
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzEtNS0xLTEtNzc5MDg_dc846f00-c40b-4047-b9f0-35c56bd06bb5"
      unitRef="usd">6580000</pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaidYearOne>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzItMS0xLTEtNzc5MDg_5842adb1-51ef-4cb2-aad8-a4bfe69a3be9"
      unitRef="usd">6499000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearTwo>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzItMy0xLTEtNzc5MDg_c08b7369-f515-49c6-ac7f-f11a8b2863ec"
      unitRef="usd">145000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearTwo>
    <pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaidYearTwo
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzItNS0xLTEtNzc5MDg_70dd7042-692c-4824-a7b4-57711f95eea5"
      unitRef="usd">6644000</pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaidYearTwo>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzMtMS0xLTEtNzc5MDg_6c80355a-3153-4d00-ba4e-9aeeaee09155"
      unitRef="usd">5129000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearThree>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzMtMy0xLTEtNzc5MDg_05109e11-94af-4033-951d-6250d9ccdf7a"
      unitRef="usd">149000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearThree>
    <pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaidYearThree
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzMtNS0xLTEtNzc5MDg_97bdadee-6500-4cfa-ac53-3ff79bd2c330"
      unitRef="usd">5278000</pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaidYearThree>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzQtMS0xLTEtNzc5MDg_fcb4ff9a-5e46-4465-9da5-02750c59a42e"
      unitRef="usd">5347000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFour>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzQtMy0xLTEtNzc5MDg_2b350c67-ad64-4d90-8b08-56ab179d502a"
      unitRef="usd">153000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearFour>
    <pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaidYearFour
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzQtNS0xLTEtNzc5MDg_bc125522-8006-40d2-a69c-da3f49346cc9"
      unitRef="usd">5500000</pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaidYearFour>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzUtMS0xLTEtNzc5MDg_b4231850-9445-46cf-84da-3c1c54c6e79f"
      unitRef="usd">4256000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueYearFive>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueYearFive
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzUtMy0xLTEtNzc5MDg_06f6ee4f-cb09-43a9-920c-9b7e884c4010"
      unitRef="usd">158000</us-gaap:FinanceLeaseLiabilityPaymentsDueYearFive>
    <pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaidYearFive
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzUtNS0xLTEtNzc5MDg_cb81863d-90e7-48db-bc7a-3cf5c1d7421a"
      unitRef="usd">4414000</pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaidYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzYtMS0xLTEtNzc5MDg_dcae1983-bcae-4c88-9541-cc467cb61f88"
      unitRef="usd">980000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDueAfterYearFive>
    <us-gaap:FinanceLeaseLiabilityPaymentsDueAfterYearFive
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzYtMy0xLTEtNzc5MDg_b3f86d11-7beb-47cf-87ab-cf139918d99d"
      unitRef="usd">41000</us-gaap:FinanceLeaseLiabilityPaymentsDueAfterYearFive>
    <pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzYtNS0xLTEtNzc5MDg_f75d044c-b07f-459d-903d-a5077c0f26c0"
      unitRef="usd">1021000</pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaidAfterYearFive>
    <us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzctMS0xLTEtNzc5MDg_2e5393c9-7f86-42f7-9f42-7111b410619d"
      unitRef="usd">28651000</us-gaap:LesseeOperatingLeaseLiabilityPaymentsDue>
    <us-gaap:FinanceLeaseLiabilityPaymentsDue
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzctMy0xLTEtNzc5MDg_7b7bffd3-ff81-4bc6-8aac-0a9c0d0c5fc9"
      unitRef="usd">786000</us-gaap:FinanceLeaseLiabilityPaymentsDue>
    <pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaid
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzctNS0xLTEtNzc5MDg_0e6365f3-0acb-48ff-afa9-ca971005c972"
      unitRef="usd">29437000</pubm:LesseeOperatingAndFinanceLeaseLiabilityToBePaid>
    <us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzgtMS0xLTEtNzc5MDg_dee88ccb-486a-4fb2-9aac-c7c16249699b"
      unitRef="usd">2060000</us-gaap:LesseeOperatingLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzgtMy0xLTEtNzc5MDg_09f8a52b-5e8f-4007-9141-d9e61d871b63"
      unitRef="usd">45000</us-gaap:FinanceLeaseLiabilityUndiscountedExcessAmount>
    <pubm:LesseeOperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzgtNS0xLTEtNzc5MDg_0e1c3a42-517c-48db-9bd5-dd98c0cec970"
      unitRef="usd">2105000</pubm:LesseeOperatingAndFinanceLeaseLiabilityUndiscountedExcessAmount>
    <us-gaap:OperatingLeaseLiability
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzktMS0xLTEtNzc5MDg_61debfab-2863-43a1-b01d-e2c04bb24d05"
      unitRef="usd">26591000</us-gaap:OperatingLeaseLiability>
    <us-gaap:FinanceLeaseLiability
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzktMy0xLTEtNzc5MDg_da6e545d-ef1f-4691-8ada-43629d5605b6"
      unitRef="usd">741000</us-gaap:FinanceLeaseLiability>
    <pubm:OperatingAndFinanceLeaseLiability
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMTgvZnJhZzo0ZmYwYjFlOGU0NmE0YmMzODk2MDYzNWZhYTc4YmZkYy90YWJsZTpmNGJiNTUzYzM3YzI0YjQzOGVmNjE2NmE5ZmU1Njk5OC90YWJsZXJhbmdlOmY0YmI1NTNjMzdjMjRiNDM4ZWY2MTY2YTlmZTU2OTk4XzktNS0xLTEtNzc5MDg_30d1514c-95ac-4ec7-8ee3-d200025d2f74"
      unitRef="usd">27332000</pubm:OperatingAndFinanceLeaseLiability>
    <us-gaap:BusinessCombinationDisclosureTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNTExL2ZyYWc6MDc3MTMzY2I4NjBmNDZhODljZmM5NjY4NjljMDIwZGYvdGV4dHJlZ2lvbjowNzcxMzNjYjg2MGY0NmE4OWNmYzk2Njg2OWMwMjBkZl84MjQ2MzM3MjEwODQ4_3010bca8-595d-402e-8ac3-fceee9f70577">Business CombinationOn September 16, 2022, the Company acquired all outstanding stock of ConsultMates, Inc. (dba &#x201c;Martin&#x201d;), a media measurement and reporting platform, for $30.8&#160;million. The acquisition is in response to growing demand from the Company&#x2019;s buy-side customers for enhanced tools to take advantage of the Company&#x2019;s global omnichannel inventory, including market-leading addressability solutions and innovative technology to enable supply path optimization. The assets acquired and liabilities assumed were recorded at fair value. The purchase price excludes $14.2&#160;million of post-acquisition cash compensation arrangements for certain key acquired employees to be paid ratably over three years following the closing of the acquisition (subject to forfeiture upon termination). The purchase price was preliminarily attributed to $7.9&#160;million of developed technology intangible assets (to be amortized over an estimated useful life of five years), $1.0&#160;million of customer relationship intangible assets (to be amortized over an estimated useful life of two years), $23.3&#160;million of goodwill, $1.1&#160;million of deferred tax liabilities, and $0.3&#160;million of net liabilities assumed. The fair value of the acquired developed technology intangible asset was estimated using the excess earnings method. This valuation methodology included an analysis of future class flows expected to be generated by the developed technology intangible asset. The fair values of assets acquired and liabilities assumed may change over the measurement period as additional information is received. The measurement period will end no later than one year from the acquisition date. The goodwill recognized was primarily attributable to the assembled workforce and the expected synergies from integrating Martin&#x2019;s technology into the Company&#x2019;s platform. Goodwill is not expected to be deductible for tax purposes. The financial results of Martin are included in the Company&#x2019;s consolidated financial statements from the date of acquisition. Separate operating results and pro forma results of operations for Martin have not been presented as the effect of this acquisition was not material to the Company&#x2019;s financial results. Acquisition-related costs were $0.9&#160;million and are included in general and administrative expenses in the consolidated statements of operations for the year ended December 31, 2022.</us-gaap:BusinessCombinationDisclosureTextBlock>
    <us-gaap:BusinessCombinationConsiderationTransferred1
      contextRef="i96bc334fe7fa4da0bac1d4c19fe5a89b_D20220916-20220916"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNTExL2ZyYWc6MDc3MTMzY2I4NjBmNDZhODljZmM5NjY4NjljMDIwZGYvdGV4dHJlZ2lvbjowNzcxMzNjYjg2MGY0NmE4OWNmYzk2Njg2OWMwMjBkZl81NDk3NTU4MTcwNDI_72ccad74-41c4-41ff-ba57-a59ff6adea39"
      unitRef="usd">30800000</us-gaap:BusinessCombinationConsiderationTransferred1>
    <us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsExpensesAndLossesRecognized
      contextRef="i96bc334fe7fa4da0bac1d4c19fe5a89b_D20220916-20220916"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNTExL2ZyYWc6MDc3MTMzY2I4NjBmNDZhODljZmM5NjY4NjljMDIwZGYvdGV4dHJlZ2lvbjowNzcxMzNjYjg2MGY0NmE4OWNmYzk2Njg2OWMwMjBkZl8zMjk4NTM0ODg1NTgy_2b4a1a10-15a2-4922-b4c1-f662c0945d86"
      unitRef="usd">14200000</us-gaap:BusinessCombinationSeparatelyRecognizedTransactionsExpensesAndLossesRecognized>
    <pubm:BusinessCombinationAcquisitionCostsPaymentTerm
      contextRef="i96bc334fe7fa4da0bac1d4c19fe5a89b_D20220916-20220916"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNTExL2ZyYWc6MDc3MTMzY2I4NjBmNDZhODljZmM5NjY4NjljMDIwZGYvdGV4dHJlZ2lvbjowNzcxMzNjYjg2MGY0NmE4OWNmYzk2Njg2OWMwMjBkZl84MjQ2MzM3MjEwODQ5_515a78d6-9f76-443c-9180-184c9a3f85c5">P3Y</pubm:BusinessCombinationAcquisitionCostsPaymentTerm>
    <us-gaap:FinitelivedIntangibleAssetsAcquired1
      contextRef="i9e9ec4b48ecd4c94b9d888afc02c0d22_D20220916-20220916"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNTExL2ZyYWc6MDc3MTMzY2I4NjBmNDZhODljZmM5NjY4NjljMDIwZGYvdGV4dHJlZ2lvbjowNzcxMzNjYjg2MGY0NmE4OWNmYzk2Njg2OWMwMjBkZl8zMjk4NTM0ODg1NjAw_bdb15a8c-22ad-472f-b164-f82abd215f5e"
      unitRef="usd">7900000</us-gaap:FinitelivedIntangibleAssetsAcquired1>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="i9e9ec4b48ecd4c94b9d888afc02c0d22_D20220916-20220916"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNTExL2ZyYWc6MDc3MTMzY2I4NjBmNDZhODljZmM5NjY4NjljMDIwZGYvdGV4dHJlZ2lvbjowNzcxMzNjYjg2MGY0NmE4OWNmYzk2Njg2OWMwMjBkZl8zMjk4NTM0ODg1NjE2_ea32bbe4-97e8-47dc-bfe0-e19583abbd64">P5Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:FinitelivedIntangibleAssetsAcquired1
      contextRef="i9e5a44ecafc44aac8d0f225ec835bf24_D20220916-20220916"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNTExL2ZyYWc6MDc3MTMzY2I4NjBmNDZhODljZmM5NjY4NjljMDIwZGYvdGV4dHJlZ2lvbjowNzcxMzNjYjg2MGY0NmE4OWNmYzk2Njg2OWMwMjBkZl8zMjk4NTM0ODg1NjMx_4ac3572f-b764-4487-9752-c92ea59842e0"
      unitRef="usd">1000000</us-gaap:FinitelivedIntangibleAssetsAcquired1>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="i9e5a44ecafc44aac8d0f225ec835bf24_D20220916-20220916"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNTExL2ZyYWc6MDc3MTMzY2I4NjBmNDZhODljZmM5NjY4NjljMDIwZGYvdGV4dHJlZ2lvbjowNzcxMzNjYjg2MGY0NmE4OWNmYzk2Njg2OWMwMjBkZl8zMjk4NTM0ODg1NjQ3_89f0cf38-f5bd-4a74-aaf5-09ee0f0a4ad6">P2Y</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="i96bc334fe7fa4da0bac1d4c19fe5a89b_D20220916-20220916"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNTExL2ZyYWc6MDc3MTMzY2I4NjBmNDZhODljZmM5NjY4NjljMDIwZGYvdGV4dHJlZ2lvbjowNzcxMzNjYjg2MGY0NmE4OWNmYzk2Njg2OWMwMjBkZl81NDk3NTU4MTY0NTI_60cd8137-0d9b-4018-8f3b-a6657eecf352"
      unitRef="usd">23300000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities
      contextRef="i09ef720717ca4499975d39592d2bf84a_I20220916"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNTExL2ZyYWc6MDc3MTMzY2I4NjBmNDZhODljZmM5NjY4NjljMDIwZGYvdGV4dHJlZ2lvbjowNzcxMzNjYjg2MGY0NmE4OWNmYzk2Njg2OWMwMjBkZl8zMjk4NTM0ODg1Njgw_d0759d5f-8969-4a9d-8fa9-654101944858"
      unitRef="usd">1100000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedDeferredTaxLiabilities>
    <us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities
      contextRef="i09ef720717ca4499975d39592d2bf84a_I20220916"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNTExL2ZyYWc6MDc3MTMzY2I4NjBmNDZhODljZmM5NjY4NjljMDIwZGYvdGV4dHJlZ2lvbjowNzcxMzNjYjg2MGY0NmE4OWNmYzk2Njg2OWMwMjBkZl81NDk3NTU4MTcwNzI_7d5b7f12-94cb-42ad-8132-c0ab89f04e58"
      unitRef="usd">300000</us-gaap:BusinessCombinationRecognizedIdentifiableAssetsAcquiredAndLiabilitiesAssumedLiabilities>
    <us-gaap:BusinessCombinationAcquisitionRelatedCosts
      contextRef="ic4cc6f26cee74daea71a7143534f6d93_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNTExL2ZyYWc6MDc3MTMzY2I4NjBmNDZhODljZmM5NjY4NjljMDIwZGYvdGV4dHJlZ2lvbjowNzcxMzNjYjg2MGY0NmE4OWNmYzk2Njg2OWMwMjBkZl8zMjk4NTM0ODg1NzE0_13d030b8-0848-4a61-b1ea-c2c4f46b2a40"
      unitRef="usd">900000</us-gaap:BusinessCombinationAcquisitionRelatedCosts>
    <us-gaap:GoodwillAndIntangibleAssetsDisclosureTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90ZXh0cmVnaW9uOjQ2ODQ2MWUyZGFmNzQyM2JhNDYxOTE2OTAzNmY3MzI3XzY1OTcwNjk3ODYyMzU_66f42a00-e448-4392-b711-885f1b0ccf26">Goodwill and Acquisition-related Intangible Assets, Net&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Goodwill&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Changes in the carrying amounts of goodwill are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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:85.718%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.082%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Balance as of December 31, 2020 and 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,250&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ConsultMates, Inc. (Note 7)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;23,327&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Balance as of December 31, 2022&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;29,577&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:6pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Acquisition-related Intangible Assets, Net&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Acquisition-related intangible assets, net consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.172%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&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 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.085%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Gross Carrying Amount&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Accumulated Amortization&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Net Carrying Amount&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="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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Weighted Average Remaining Useful Life (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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Developed technology&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;456&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7,444&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="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;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4.75&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,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="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;145&#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="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;855&#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="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="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.75&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total acquisition-related intangible assets&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;601&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,299&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="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:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4.44&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Amortization expense related to acquisition-related intangibles was $0.6 million for the year ended December&#160;31, 2022.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, estimated future amortization expense for acquisition-related intangible assets was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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:85.718%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.082%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,080&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,936&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,580&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,580&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,123&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total estimated future amortization expense for acquisition-related intangible assets&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,299&#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:GoodwillAndIntangibleAssetsDisclosureTextBlock>
    <us-gaap:ScheduleOfGoodwillTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90ZXh0cmVnaW9uOjQ2ODQ2MWUyZGFmNzQyM2JhNDYxOTE2OTAzNmY3MzI3XzY1OTcwNjk3ODYyMzY_d6d95876-2ac4-4134-ac40-c73172114ac6">&lt;div style="margin-top:6pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Changes in the carrying amounts of goodwill are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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:85.718%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.082%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Balance as of December 31, 2020 and 2021&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,250&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;ConsultMates, Inc. (Note 7)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;23,327&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Balance as of December 31, 2022&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;29,577&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfGoodwillTextBlock>
    <us-gaap:Goodwill
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTphYzA1MDYzNWRhYzI0YzUwOGE1MWFmZTA4NGU1YWFjMS90YWJsZXJhbmdlOmFjMDUwNjM1ZGFjMjRjNTA4YTUxYWZlMDg0ZTVhYWMxXzAtMS0xLTEtODk0MzM_4dd4d93c-beba-4a71-84a0-ebfb12950b6e"
      unitRef="usd">6250000</us-gaap:Goodwill>
    <us-gaap:GoodwillAcquiredDuringPeriod
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTphYzA1MDYzNWRhYzI0YzUwOGE1MWFmZTA4NGU1YWFjMS90YWJsZXJhbmdlOmFjMDUwNjM1ZGFjMjRjNTA4YTUxYWZlMDg0ZTVhYWMxXzItMS0xLTEtODk0NTY_7d57fca0-a831-4e69-bc36-f3c157f4afa6"
      unitRef="usd">23327000</us-gaap:GoodwillAcquiredDuringPeriod>
    <us-gaap:Goodwill
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTphYzA1MDYzNWRhYzI0YzUwOGE1MWFmZTA4NGU1YWFjMS90YWJsZXJhbmdlOmFjMDUwNjM1ZGFjMjRjNTA4YTUxYWZlMDg0ZTVhYWMxXzMtMS0xLTEtOTAxNTE_53191e8d-a66f-49a3-8ba9-7ac8f9b00cff"
      unitRef="usd">29577000</us-gaap:Goodwill>
    <us-gaap:ScheduleOfAcquiredIndefiniteLivedIntangibleAssetsByMajorClassTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90ZXh0cmVnaW9uOjQ2ODQ2MWUyZGFmNzQyM2JhNDYxOTE2OTAzNmY3MzI3XzY1OTcwNjk3ODYyMzc_a522d0c0-571a-48d7-9c74-16a6a8e5fe40">&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Acquisition-related intangible assets, net consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.172%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&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 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.085%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="12" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Gross Carrying Amount&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Accumulated Amortization&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Net Carrying Amount&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="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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Weighted Average Remaining Useful Life (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;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Developed technology&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;456&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7,444&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="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;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4.75&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Customer relationships&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,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="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;145&#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="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;855&#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="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="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.75&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total acquisition-related intangible assets&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,900&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;601&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,299&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="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:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4.44&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;td colspan="3" style="display:none"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAcquiredIndefiniteLivedIntangibleAssetsByMajorClassTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i5d42c5d8ad214f91804fd0c6cd7b3fc1_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTowY2YyZDIyNzI3YTA0N2Q0YWFiYjMwNTg5ZGMyMjA1Mi90YWJsZXJhbmdlOjBjZjJkMjI3MjdhMDQ3ZDRhYWJiMzA1ODlkYzIyMDUyXzItMS0xLTEtODk0ODQ_31de9039-eab9-4847-ab7e-094a654bc599"
      unitRef="usd">7900000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i5d42c5d8ad214f91804fd0c6cd7b3fc1_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTowY2YyZDIyNzI3YTA0N2Q0YWFiYjMwNTg5ZGMyMjA1Mi90YWJsZXJhbmdlOjBjZjJkMjI3MjdhMDQ3ZDRhYWJiMzA1ODlkYzIyMDUyXzItMy0xLTEtOTEwNTM_2e8e212c-cfc7-4562-8593-9d259af28a47"
      unitRef="usd">456000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i5d42c5d8ad214f91804fd0c6cd7b3fc1_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTowY2YyZDIyNzI3YTA0N2Q0YWFiYjMwNTg5ZGMyMjA1Mi90YWJsZXJhbmdlOjBjZjJkMjI3MjdhMDQ3ZDRhYWJiMzA1ODlkYzIyMDUyXzItNS0xLTEtOTE0Mjk_632d1a31-884a-488c-bb85-440ccbd539ad"
      unitRef="usd">7444000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="ida9b43ad77b7440c8f4de3ebdc519271_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTowY2YyZDIyNzI3YTA0N2Q0YWFiYjMwNTg5ZGMyMjA1Mi90YWJsZXJhbmdlOjBjZjJkMjI3MjdhMDQ3ZDRhYWJiMzA1ODlkYzIyMDUyXzItMTItMS0xLTkxMDcz_9b0da884-ea90-4b3e-af66-0efeddc97605">P4Y9M</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="i8c664b2f417947718f6c8b4d190c90c7_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTowY2YyZDIyNzI3YTA0N2Q0YWFiYjMwNTg5ZGMyMjA1Mi90YWJsZXJhbmdlOjBjZjJkMjI3MjdhMDQ3ZDRhYWJiMzA1ODlkYzIyMDUyXzMtMS0xLTEtODk0ODQ_b1a4b82b-a22e-4d9e-a05b-ae827dc21708"
      unitRef="usd">1000000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="i8c664b2f417947718f6c8b4d190c90c7_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTowY2YyZDIyNzI3YTA0N2Q0YWFiYjMwNTg5ZGMyMjA1Mi90YWJsZXJhbmdlOjBjZjJkMjI3MjdhMDQ3ZDRhYWJiMzA1ODlkYzIyMDUyXzMtMy0xLTEtOTEwNTM_f2fa4883-93b3-4403-a3e2-f5f03e141fa3"
      unitRef="usd">145000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="i8c664b2f417947718f6c8b4d190c90c7_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTowY2YyZDIyNzI3YTA0N2Q0YWFiYjMwNTg5ZGMyMjA1Mi90YWJsZXJhbmdlOjBjZjJkMjI3MjdhMDQ3ZDRhYWJiMzA1ODlkYzIyMDUyXzMtNS0xLTEtOTE0Mjk_f75402b1-5824-4c68-8def-e57b9db3ae17"
      unitRef="usd">855000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="ib808a479e76f42449e27c460b0deed3b_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTowY2YyZDIyNzI3YTA0N2Q0YWFiYjMwNTg5ZGMyMjA1Mi90YWJsZXJhbmdlOjBjZjJkMjI3MjdhMDQ3ZDRhYWJiMzA1ODlkYzIyMDUyXzMtMTItMS0xLTkxMDgy_37e99b6b-81e6-4fb2-b81d-024e442647ce">P1Y9M</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:FiniteLivedIntangibleAssetsGross
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTowY2YyZDIyNzI3YTA0N2Q0YWFiYjMwNTg5ZGMyMjA1Mi90YWJsZXJhbmdlOjBjZjJkMjI3MjdhMDQ3ZDRhYWJiMzA1ODlkYzIyMDUyXzQtMS0xLTEtOTAxNjA_5748a916-042f-4f60-bcc4-680cd0a1b1b1"
      unitRef="usd">8900000</us-gaap:FiniteLivedIntangibleAssetsGross>
    <us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTowY2YyZDIyNzI3YTA0N2Q0YWFiYjMwNTg5ZGMyMjA1Mi90YWJsZXJhbmdlOjBjZjJkMjI3MjdhMDQ3ZDRhYWJiMzA1ODlkYzIyMDUyXzQtMy0xLTEtOTE0MjU_deeb906c-b975-4709-89f3-dc10e172ca23"
      unitRef="usd">601000</us-gaap:FiniteLivedIntangibleAssetsAccumulatedAmortization>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTowY2YyZDIyNzI3YTA0N2Q0YWFiYjMwNTg5ZGMyMjA1Mi90YWJsZXJhbmdlOjBjZjJkMjI3MjdhMDQ3ZDRhYWJiMzA1ODlkYzIyMDUyXzQtNS0xLTEtOTE0Mjk_241a58ec-f410-4b52-89c3-39d88aa4422d"
      unitRef="usd">8299000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTowY2YyZDIyNzI3YTA0N2Q0YWFiYjMwNTg5ZGMyMjA1Mi90YWJsZXJhbmdlOjBjZjJkMjI3MjdhMDQ3ZDRhYWJiMzA1ODlkYzIyMDUyXzQtMTItMS0xLTkxMDky_8d11ffc8-6107-44d1-a8a0-00f5a515464a">P4Y5M8D</us-gaap:AcquiredFiniteLivedIntangibleAssetsWeightedAverageUsefulLife>
    <us-gaap:AmortizationOfIntangibleAssets
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90ZXh0cmVnaW9uOjQ2ODQ2MWUyZGFmNzQyM2JhNDYxOTE2OTAzNmY3MzI3XzEwOTk1MTE2NDcwOTA_0b59f78d-0508-4927-9818-ea7a9e8879f8"
      unitRef="usd">600000</us-gaap:AmortizationOfIntangibleAssets>
    <us-gaap:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90ZXh0cmVnaW9uOjQ2ODQ2MWUyZGFmNzQyM2JhNDYxOTE2OTAzNmY3MzI3XzY1OTcwNjk3ODYyMzg_7cf75def-ffa8-42b0-819b-c8fb5111f750">&lt;div style="margin-top:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, estimated future amortization expense for acquisition-related intangible assets was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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:85.718%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.082%"/&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,080&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,936&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,580&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2026&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,580&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2027&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,123&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total estimated future amortization expense for acquisition-related intangible assets&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,299&#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:ScheduleofFiniteLivedIntangibleAssetsFutureAmortizationExpenseTableTextBlock>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTo3ZTQzMThkNGQ1ZDc0NjRjYmRlYWNhNWY1OWVjZjMyOC90YWJsZXJhbmdlOjdlNDMxOGQ0ZDVkNzQ2NGNiZGVhY2E1ZjU5ZWNmMzI4XzAtMS0xLTEtODk0ODQ_8ea22876-6ed8-4f0d-826e-1640707153ae"
      unitRef="usd">2080000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseNextTwelveMonths>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTo3ZTQzMThkNGQ1ZDc0NjRjYmRlYWNhNWY1OWVjZjMyOC90YWJsZXJhbmdlOjdlNDMxOGQ0ZDVkNzQ2NGNiZGVhY2E1ZjU5ZWNmMzI4XzEtMS0xLTEtODk0ODQ_7c0454ae-ced8-4a92-ae3f-85411289ecf2"
      unitRef="usd">1936000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearTwo>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTo3ZTQzMThkNGQ1ZDc0NjRjYmRlYWNhNWY1OWVjZjMyOC90YWJsZXJhbmdlOjdlNDMxOGQ0ZDVkNzQ2NGNiZGVhY2E1ZjU5ZWNmMzI4XzItMS0xLTEtODk0ODQ_85d68bb2-4968-489b-898a-f93863a8f49d"
      unitRef="usd">1580000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearThree>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTo3ZTQzMThkNGQ1ZDc0NjRjYmRlYWNhNWY1OWVjZjMyOC90YWJsZXJhbmdlOjdlNDMxOGQ0ZDVkNzQ2NGNiZGVhY2E1ZjU5ZWNmMzI4XzMtMS0xLTEtODk0ODQ_1d965ebd-1dd5-4aed-8f0c-27cb79a1c558"
      unitRef="usd">1580000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFour>
    <us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTo3ZTQzMThkNGQ1ZDc0NjRjYmRlYWNhNWY1OWVjZjMyOC90YWJsZXJhbmdlOjdlNDMxOGQ0ZDVkNzQ2NGNiZGVhY2E1ZjU5ZWNmMzI4XzQtMS0xLTEtODk0ODQ_8e06a1ce-43e8-448e-8157-d53b927644ee"
      unitRef="usd">1123000</us-gaap:FiniteLivedIntangibleAssetsAmortizationExpenseYearFive>
    <us-gaap:FiniteLivedIntangibleAssetsNet
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMjEvZnJhZzo0Njg0NjFlMmRhZjc0MjNiYTQ2MTkxNjkwMzZmNzMyNy90YWJsZTo3ZTQzMThkNGQ1ZDc0NjRjYmRlYWNhNWY1OWVjZjMyOC90YWJsZXJhbmdlOjdlNDMxOGQ0ZDVkNzQ2NGNiZGVhY2E1ZjU5ZWNmMzI4XzUtMS0xLTEtOTAxODQ_c696c5d2-e69e-4669-932e-fcbbe52ec7db"
      unitRef="usd">8299000</us-gaap:FiniteLivedIntangibleAssetsNet>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8yMzk4L2ZyYWc6OTZjNDYxYzQxOWJiNGM1NWJlZDM2MTdjZjNkNTdkZjEvdGV4dHJlZ2lvbjo5NmM0NjFjNDE5YmI0YzU1YmVkMzYxN2NmM2Q1N2RmMV8yOTIz_484611d8-1f87-4d49-a5ce-63912eb5e143">Commitments and Contingencies &lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Purchase Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s purchase obligations primarily relate to minimum contractual payments due to data center providers.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, future minimum commitments for purchase obligations with a remaining term in excess of one year were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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:85.718%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.082%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:120%"&gt;Years ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;19,698&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;15,798&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,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 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total future minimum commitments, net&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;41,080&#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:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Letters of Credit&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, the Company had two irrevocable letters of credit outstanding related to noncancelable facilities leases in the amounts of $0.5&#160;million and $3.5&#160;million, with annual automatic renewal and final expiration dates in April 2025 and July 2028, respectively. As of December&#160;31, 2021, the Company had two irrevocable letters of credit outstanding related to noncancelable facilities leases in the amounts of $0.7&#160;million and $3.5 million, with annual automatic renewal and final expiration dates in June 2022 and July 2028, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Legal Matters&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;From time to time, the Company is or may be involved in various claims and other legal matters arising in the normal course of business. The Company records an accrual for a liability relating to claims and other legal matters when it is both probable that a liability has been incurred and the amount of the loss can be reasonably estimated. Any such accruals are reviewed at least quarterly and adjusted for the impacts of negotiations, rulings, settlements, and other information or events pertaining to a particular matter, or on the advice of legal counsel. To date, the Company has not incurred a material loss, or a material loss in excess of a recorded accrual, with respect to any claims and other legal matters arising in the normal course of business. However, the outcomes of claims and other legal matters are inherently unpredictable and subject to significant uncertainties. If the Company subsequently concludes that there is a reasonable possibility that a loss exceeding amounts already recognized may be incurred, and the amount of such additional loss would be material, the Company will either disclose the estimated additional loss or state that such an estimate cannot be made.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Indemnification&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In the normal course of business, the Company enters into contracts and agreements that contain a variety of representations and warranties and provide for general indemnification. The Company&#x2019;s exposure under these agreements is unknown because it involves future claims that may be made against the Company, but have not yet been made. To date, the Company has not paid any material claims or been required to defend any actions related to its indemnification obligations. However, the Company may record charges in the future as a result of these indemnification obligations. In addition, the Company has indemnification agreements with certain of its directors and executive officers that require it, among other things, to indemnify them against certain liabilities that may arise due to their status or service as directors or officers of the Company. The terms of such obligations may vary.&lt;/span&gt;&lt;/div&gt;</us-gaap:CommitmentsAndContingenciesDisclosureTextBlock>
    <srt:ContractualObligationFiscalYearMaturityScheduleTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8yMzk4L2ZyYWc6OTZjNDYxYzQxOWJiNGM1NWJlZDM2MTdjZjNkNTdkZjEvdGV4dHJlZ2lvbjo5NmM0NjFjNDE5YmI0YzU1YmVkMzYxN2NmM2Q1N2RmMV8yOTIy_7c5aeded-aa61-4629-b774-4345142fd020">&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, future minimum commitments for purchase obligations with a remaining term in excess of one year were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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:85.718%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.082%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:700;line-height:120%"&gt;Years ending December 31,&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2023&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;19,698&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2024&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;15,798&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2025&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,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 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total future minimum commitments, net&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;41,080&#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;</srt:ContractualObligationFiscalYearMaturityScheduleTableTextBlock>
    <us-gaap:ContractualObligationDueInNextTwelveMonths
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8yMzk4L2ZyYWc6OTZjNDYxYzQxOWJiNGM1NWJlZDM2MTdjZjNkNTdkZjEvdGFibGU6MmYyMDFiZDlmZjc3NDY5MGFhZWM1NWEzMWRjZWRkODQvdGFibGVyYW5nZToyZjIwMWJkOWZmNzc0NjkwYWFlYzU1YTMxZGNlZGQ4NF8xLTEtMS0xLTg5Mzc2_10edc597-d596-4034-9623-72f0a3812c0a"
      unitRef="usd">19698000</us-gaap:ContractualObligationDueInNextTwelveMonths>
    <us-gaap:ContractualObligationDueInSecondYear
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8yMzk4L2ZyYWc6OTZjNDYxYzQxOWJiNGM1NWJlZDM2MTdjZjNkNTdkZjEvdGFibGU6MmYyMDFiZDlmZjc3NDY5MGFhZWM1NWEzMWRjZWRkODQvdGFibGVyYW5nZToyZjIwMWJkOWZmNzc0NjkwYWFlYzU1YTMxZGNlZGQ4NF8yLTEtMS0xLTg5Mzc2_0c3427c6-05a5-495e-bf86-38cf56724876"
      unitRef="usd">15798000</us-gaap:ContractualObligationDueInSecondYear>
    <us-gaap:ContractualObligationDueInThirdYear
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8yMzk4L2ZyYWc6OTZjNDYxYzQxOWJiNGM1NWJlZDM2MTdjZjNkNTdkZjEvdGFibGU6MmYyMDFiZDlmZjc3NDY5MGFhZWM1NWEzMWRjZWRkODQvdGFibGVyYW5nZToyZjIwMWJkOWZmNzc0NjkwYWFlYzU1YTMxZGNlZGQ4NF8zLTEtMS0xLTg5Mzc2_da4d0462-b1fd-4cda-bb2a-8b02ecb59f15"
      unitRef="usd">5584000</us-gaap:ContractualObligationDueInThirdYear>
    <us-gaap:ContractualObligation
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8yMzk4L2ZyYWc6OTZjNDYxYzQxOWJiNGM1NWJlZDM2MTdjZjNkNTdkZjEvdGFibGU6MmYyMDFiZDlmZjc3NDY5MGFhZWM1NWEzMWRjZWRkODQvdGFibGVyYW5nZToyZjIwMWJkOWZmNzc0NjkwYWFlYzU1YTMxZGNlZGQ4NF80LTEtMS0xLTg5Mzc2_13e751df-2b38-4c60-bcb0-7f4ce3fe87b4"
      unitRef="usd">41080000</us-gaap:ContractualObligation>
    <pubm:NumberOfDebtInstruments
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8yMzk4L2ZyYWc6OTZjNDYxYzQxOWJiNGM1NWJlZDM2MTdjZjNkNTdkZjEvdGV4dHJlZ2lvbjo5NmM0NjFjNDE5YmI0YzU1YmVkMzYxN2NmM2Q1N2RmMV8zNjQ_19a7d11c-eebf-4481-a33e-9bfea51cc362"
      unitRef="instrument">2</pubm:NumberOfDebtInstruments>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="i7bcee892987e4daa960b94dee14edba1_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8yMzk4L2ZyYWc6OTZjNDYxYzQxOWJiNGM1NWJlZDM2MTdjZjNkNTdkZjEvdGV4dHJlZ2lvbjo5NmM0NjFjNDE5YmI0YzU1YmVkMzYxN2NmM2Q1N2RmMV80NzA_abf6979e-d678-474f-9fcc-744d3f5fbe16"
      unitRef="usd">500000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="i70e24ce3116648ca95d333c69dd276ba_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8yMzk4L2ZyYWc6OTZjNDYxYzQxOWJiNGM1NWJlZDM2MTdjZjNkNTdkZjEvdGV4dHJlZ2lvbjo5NmM0NjFjNDE5YmI0YzU1YmVkMzYxN2NmM2Q1N2RmMV80Nzc_5ac4c59f-48f8-4440-8b57-aecdab008247"
      unitRef="usd">3500000</us-gaap:LettersOfCreditOutstandingAmount>
    <pubm:NumberOfDebtInstruments
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8yMzk4L2ZyYWc6OTZjNDYxYzQxOWJiNGM1NWJlZDM2MTdjZjNkNTdkZjEvdGV4dHJlZ2lvbjo5NmM0NjFjNDE5YmI0YzU1YmVkMzYxN2NmM2Q1N2RmMV81OTI_dbb5b86d-551a-426b-8934-d0675275d830"
      unitRef="instrument">2</pubm:NumberOfDebtInstruments>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="i9aa04502f9194d5eb5802305ecae32a5_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8yMzk4L2ZyYWc6OTZjNDYxYzQxOWJiNGM1NWJlZDM2MTdjZjNkNTdkZjEvdGV4dHJlZ2lvbjo5NmM0NjFjNDE5YmI0YzU1YmVkMzYxN2NmM2Q1N2RmMV82OTg_95b19d99-2211-4ee4-a128-9f40092c2d98"
      unitRef="usd">700000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="i32fd8032ce434823ac13dc2f68fdca4e_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8yMzk4L2ZyYWc6OTZjNDYxYzQxOWJiNGM1NWJlZDM2MTdjZjNkNTdkZjEvdGV4dHJlZ2lvbjo5NmM0NjFjNDE5YmI0YzU1YmVkMzYxN2NmM2Q1N2RmMV83MDU_394fcf97-6892-479e-8516-3693c23dbd6a"
      unitRef="usd">3500000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzkwMDY_841fab52-ec23-47de-ae5e-f5b512c70354">Stockholders&#x2019; Equity and Equity Incentive Plans&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Common Stock&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company&#x2019;s board of directors has authorized 1,000,000,000 shares of Class A common stock, $0.0001 par value per share, and 1,000,000,000 shares of Class B common stock, $0.0001 par value per share. The rights of the holders of Class A common stock and Class B common stock are identical, except with respect to voting and conversion rights. Holders of Class A common stock are entitled to one vote and holders of Class B common stock are entitled to ten votes and is convertible into one share of Class A common stock. Each share of Class B is convertible anytime at the option of the holder into one share of Class A common stock. Once converted or transferred and converted into Class A common stock, the Class B common stock will not be reissued.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Equity Incentive Plans&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company maintains the 2020 Equity Incentive Plan (&#x201c;2020 Plan&#x201d;), pursuant to which the Company may grant stock options, restricted stock awards, stock appreciation rights, restricted stock units (&#x201c;RSUs&#x201d;), deferred stock units (&#x201c;DSUs&#x201d;) performance awards, and stock bonus awards. As of December&#160;31, 2022, the Company has reserved 7,280,745 shares of Class A common stock for the issuance of awards under the 2020 Plan. These available shares will increase automatically on January 1 for each of the first ten calendar years during the term of the 2020 Plan by the number of shares equal to the lesser of five percent (5%) of the aggregate number of outstanding shares of all classes of the Company&#x2019;s common stock outstanding as of the immediately preceding December 31, or a number as may be determined by the Company&#x2019;s board of directors or compensation committee. No new awards were issued under the Company&#x2019;s prior 2006 Plan or 2017 Plan (&#x201c;Prior Plans&#x201d;) after the effective date of the 2020 Plan. To the extent outstanding awards under the 2006 Plan and the 2017 Plan are forfeited, expire unexercised, or would otherwise have been returned to the share reserve under the Prior Plans, the shares of Class B common stock subject to such awards instead will be available for future issuance as Class A common stock under the 2020 Plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock Options&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock options granted under the Company&#x2019;s stock incentive plans generally vest over four years, subject to the holder&#x2019;s continued service through the vesting date and expire no later than ten years from the date of grant.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes stock option activity and related information under the Company&#x2019;s equity incentive plans:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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:44.354%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.085%"/&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="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Options Outstanding&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Number of Shares Underlying Outstanding Options&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Weighted-Average Exercise Price&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Weighted Average Remaining Contractual Term (Years)&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Aggregate Intrinsic Value (in thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Outstanding &#x2014; December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,542,351&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6.08&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6.95&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;184,727&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Options granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;450,153&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td 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 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Options exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(358,418)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3.33&#160;&lt;/span&gt;&lt;/td&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 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Options canceled&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(148,070)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;15.07&#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 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Options expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(9,777)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;34.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;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Outstanding &#x2014; December 31, 2022&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,476,239&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7.38&#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="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6.10&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;55,516&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Vested and exercisable &#x2014; December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,089,579&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #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:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4.93&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #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:3pt double #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5.58&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:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;48,635&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #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:18pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The aggregate intrinsic value represents the difference between the exercise price of the options and the fair market value of our common stock on the date of exercise. The intrinsic value of options exercised was $6.4 million, $80.7 million and $15.7 million for the years ended December&#160;31, 2022, 2021 and 2020, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, unrecognized stock-based compensation of $14.1 million related to unvested stock options will be recognized on a straight-line basis over a weighted average period of 2.15 years. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of stock options granted under the Company&#x2019;s equity incentive plans was estimated using the following assumptions:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:1pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fair market value of common stock&lt;/span&gt;&lt;/td&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;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$18.63-$31.79&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 #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$39.75-$54.07&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 #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$3.20-$17.00&lt;/span&gt;&lt;/div&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Expected term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5.0-7.0&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5.8-6.7&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5.7-6.4&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.8%-3.4%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.6%-1.0%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.3%-1.5%&lt;/span&gt;&lt;/div&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Expected volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;54%-57%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;51%-54%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50%-55%&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Dividend rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;%&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted-average grant date fair value of options granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$13.70&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:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$20.30&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:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$4.96&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Each of these inputs is subjective and generally requires significant judgment to determine. These assumptions and estimates were determined as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Fair Value of Common Stock - &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;Prior to the Company&#x2019;s IPO in 2020, the fair value was determined by the board of directors, with input from management and valuation reports prepared by third-party valuation specialists. Subsequent to the Company&#x2019;s IPO, the fair value of each share of underlying common stock was based on the closing price of the Company&#x2019;s Class A common stock as reported on the date of the grant.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Expected Term&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; - The expected term represents the period that the Company&#x2019;s stock-based awards are expected to be outstanding. For option grants that are considered to be &#x201c;plain vanilla,&#x201d; the Company determines the expected term using the simplified method. The simplified method deems the term to be the average of the time-to-vesting and the contractual life of the options. For other option grants, the Company estimates expected term using historical data on employee exercises and post-vesting employment termination behavior taking into account the contractual life of the award.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Risk-Free Interest Rate&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; - The risk-free interest rate is based on the U.S. Treasury yield curve in effect at the time of grant for zero-coupon U.S. Treasury notes with maturities approximately equal to the option&#x2019;s expected term.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Expected Volatility&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; - Since the Company has a short trading history of its common stock, the expected volatility is derived from the average historical stock volatilities of several unrelated public companies within the Company&#x2019;s industry that the Company considers to be comparable to its business over a period equivalent to the expected term of the stock option grants.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Dividend Rate&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; - The expected dividend is assumed to be zero as the Company has never paid dividends and has no current plans to do so.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Restricted Stock Units&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;RSU awards generally vest over four years, subject to the holder&#x2019;s continued service through the vesting date. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes RSU activity and related information under the Company&#x2019;s 2020 Plan:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:1pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;RSUs&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Number of Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Weighted-Average Grant Date Fair Value per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Aggregate Intrinsic Value (in thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Unvested &#x2014; December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;483,302&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;35.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;17,025&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,587,930&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;25.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(308,433)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;30.76&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Canceled/Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(180,817)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;29.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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Unvested &#x2014; December 31, 2022&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,581,982&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,264&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, unrecognized stock-based compensation of $37.8 million related to unvested RSUs will be recognized on a straight-line basis over a weighted average period of 2.96 years. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;2020 Employee Stock Purchase Plan&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In November 2020, the Company&#x2019;s board of directors adopted, and its stockholders approved, the 2020 Employee Stock Purchase Plan (&#x201c;ESPP&#x201d;), which became effective in connection with the Company&#x2019;s IPO. A total of 500,000 shares of the Company&#x2019;s Class A common stock were initially reserved for issuance under the ESPP. The aggregate number of shares reserved for issuance under the ESPP will increase automatically on January 1st of each of the first ten calendar years during the term of the ESPP by the number of shares equal to the lesser of (a) 1% of the total outstanding shares of all classes of the Company&#x2019;s common stock as of the immediately preceding December 31 and (b) such number of shares of common stock as determined by the Company&#x2019;s board of directors. The aggregate number of shares issued over the term of the ESPP may not exceed 7,500,000 shares of Class A common stock. As of December&#160;31, 2022, the Company has reserved 529,888 shares of its common stock for issuance under the ESPP. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Under the ESPP, Class A common stock will be purchased for the accounts of employees participating in the ESPP on each purchase date at a price per share equal to 85% of the lesser of: (a) the fair market value on the offering date or (b) the fair market value on the purchase date. The ESPP provides for, at maximum,&#160;27&#160;month offering periods and&#160;each offering period may consist of one or more six-month purchase periods, whereby the latest offering period commenced on June 1, 2022, and the offering periods thereafter consist of two six-month purchase periods ending May 31, 2023. As of December&#160;31, 2022, $0.1 million has been withheld on behalf of employees for a future purchase under the ESPP due to the timing of payroll deductions and is included in accrued liabilities. For the twelve months ended December 31, 2022, 183,587 shares of our Class A common stock have been purchased under the ESPP.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;As of December&#160;31, 2022, unrecognized stock-based compensation expense related to the ESPP was $0.4 million, which is expected to be recognized over a weighted-average period of 0.41 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of purchase right granted the under the Company&#x2019;s 2020 Employee Stock Purchase Plan was estimated using the following assumptions:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:1pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Expected term (in years)&lt;/span&gt;&lt;/td&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;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.5-1.0&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 #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.4-1.4&lt;/span&gt;&lt;/div&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.6%-2.2%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Expected volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;83%-79%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;60%-76%&lt;/span&gt;&lt;/div&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Dividend rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Expected Term&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; - The expected term of the ESPP represents the period of time that purchase rights are expected to be outstanding.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Risk-Free Interest Rate - &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The risk-free interest rate for the expected term of the awards was based on the U.S. Treasury yield curve in effect at the time of the grant.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Expected Volatility&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt; - Since the Company has a short trading history of its common stock, the expected volatility was estimated by taking the average historic price volatility of several unrelated public companies within the Company&#x2019;s industry that the Company considers to be comparable to its business over a period equivalent to the expected term of the awards.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Dividend rate &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;- The Company has never declared or paid any cash dividends and does not presently plan to pay cash dividends in the foreseeable future. As a result, an expected dividend yield of zero percent was used.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Stock-Based Compensation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:5pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total stock-based compensation expense recognized in the consolidated statements of operations was as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,135&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;825&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;86&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Technology and development&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,225&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;599&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Sales and marketing&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7,645&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,176&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,101&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;General and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,641&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,874&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,777&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total stock-based compensation expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,646&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;14,107&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,563&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Tax benefit from stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(3,537)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,825)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(493)&lt;/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 10pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total stock-based compensation expense, net of tax effect&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;17,109&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,282&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,070&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:StockholdersEquityNoteDisclosureTextBlock>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="ibb19a59747b341a2804c222c19fcb5fe_I20201211"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzIwOA_e2a21cc0-6205-4f9e-9b75-281b9435f433"
      unitRef="shares">1000000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="ibb19a59747b341a2804c222c19fcb5fe_I20201211"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzI0Mw_3af61479-1371-4b1b-82c8-e160a95f2173"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="id6abe45cb2bc43e0958b992c150fa087_I20201211"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzI3MQ_cf35bff7-3155-4d80-a44a-9525660c18da"
      unitRef="shares">1000000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="id6abe45cb2bc43e0958b992c150fa087_I20201211"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzMwNg_affd9666-8364-48ec-9837-93384f401be9"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight
      contextRef="i173af4e1ac634c5cafc46d424c48a9f1_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzgyNDYzMzcyMjQ1NjM_b3332789-fb66-4f7c-a05c-bc106d369b24"
      unitRef="shares">1</us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight>
    <us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight
      contextRef="ifa9796e50d594b00a80a484c70c8d554_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzgyNDYzMzcyMjQ1NjQ_ce91cce7-5b59-40f7-bce8-64396d5ab0ea"
      unitRef="shares">10</us-gaap:ClassOfWarrantOrRightNumberOfSecuritiesCalledByEachWarrantOrRight>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzM4NDgyOTA3MDk2OTM_0e5304c3-cf16-4dfe-b47c-687266ce0698"
      unitRef="shares">7280745</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <pubm:ShareBasedCompensationArrangementAutomaticAnnualIncreaseTerm
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzM4NDgyOTA3MDk2OTc_b583636a-7bbd-4277-8abc-a31056d10d2c"
      unitRef="calendaryear">10</pubm:ShareBasedCompensationArrangementAutomaticAnnualIncreaseTerm>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardDiscountFromMarketPricePurchaseDate
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzM4NDgyOTA3MDk2OTk_6bd5701c-ab3c-4992-b2f7-50ab1eba09ab"
      unitRef="number">0.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardDiscountFromMarketPricePurchaseDate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="ic784f4217cd447739c4b1b7d7d1b0cc6_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzI2OTk_3e5b94cb-4bb1-4900-b510-ad752dd61bed">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod
      contextRef="ic784f4217cd447739c4b1b7d7d1b0cc6_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzM4NDgyOTA3MDk4NzU_30522126-45bb-45a3-a137-dd73186219c0">P10Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardExpirationPeriod>
    <us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzkwMDc_99bf4dd8-eefe-4f7f-ae7d-5b67667683ef">&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes stock option activity and related information under the Company&#x2019;s equity incentive plans:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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:44.354%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.085%"/&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="21" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Options Outstanding&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Number of Shares Underlying Outstanding Options&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Weighted-Average Exercise Price&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Weighted Average Remaining Contractual Term (Years)&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Aggregate Intrinsic Value (in thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Outstanding &#x2014; December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,542,351&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6.08&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6.95&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;184,727&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Options granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;450,153&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26.05&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td 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 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Options exercised&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(358,418)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3.33&#160;&lt;/span&gt;&lt;/td&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 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Options canceled&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(148,070)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;15.07&#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 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Options expired&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(9,777)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;34.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;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Outstanding &#x2014; December 31, 2022&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,476,239&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7.38&#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="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6.10&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;55,516&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Vested and exercisable &#x2014; December 31, 2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,089,579&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #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:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4.93&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #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:3pt double #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5.58&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:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;48,635&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:3pt double #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-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes RSU activity and related information under the Company&#x2019;s 2020 Plan:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:1pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;RSUs&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Number of Shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Weighted-Average Grant Date Fair Value per Share&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Aggregate Intrinsic Value (in thousands)&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Unvested &#x2014; December 31, 2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;483,302&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;35.23&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;17,025&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,587,930&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;25.01&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Vested&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(308,433)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;30.76&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Canceled/Forfeited&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(180,817)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;29.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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Unvested &#x2014; December 31, 2022&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,581,982&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,264&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzItMS0xLTEtNzc5MDg_a29282e5-9990-4ad0-8d8f-85d0ff98aabc"
      unitRef="shares">6542351</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzItMy0xLTEtNzc5MDg_f24ff2fb-8815-4309-9f91-b750575b8679"
      unitRef="usdPerShare">6.08</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzItNS0xLTEtNzc5MDg_1c960554-d48e-4a64-b090-d96453dd3845">P6Y11M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzItNy0xLTEtNzc5MDg_f2ce3ee6-3461-4979-a852-41242e407e87"
      unitRef="usd">184727000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzMtMS0xLTEtNzc5MDg_df22ad78-7a32-486c-9aa4-12f8d4e07b59"
      unitRef="shares">450153</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzMtMy0xLTEtNzc5MDg_285e3e26-435f-45c5-b27b-b6405e58c3ac"
      unitRef="usdPerShare">26.05</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzQtMS0xLTEtNzc5MDg_d3ef97a6-70fe-4c90-965c-37cda900967c"
      unitRef="shares">358418</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzQtMy0xLTEtNzc5MDg_be11c822-9a90-4dd6-9fb4-683516b06762"
      unitRef="usdPerShare">3.33</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzUtMS0xLTEtNzc5MDg_d467e359-3203-41bf-8b51-8200458a0727"
      unitRef="shares">148070</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzUtMy0xLTEtNzc5MDg_fe74e1df-e884-4ea4-8a37-aefe5ba49780"
      unitRef="usdPerShare">15.07</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzYtMS0xLTEtNzc5MDg_f2b3639d-faa3-40f9-9ea6-de4511d3abe9"
      unitRef="shares">9777</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExpirationsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzYtMy0xLTEtNzc5MDg_343e0ff6-1918-41a9-a151-35aeb897500b"
      unitRef="usdPerShare">34.40</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExpirationsInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzctMS0xLTEtNzc5MDg_f5a88f13-5b7e-4b0f-8b9a-d409db338b6e"
      unitRef="shares">6476239</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzctMy0xLTEtNzc5MDg_6671d8c0-9341-4d08-b965-c71284a52a84"
      unitRef="usdPerShare">7.38</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzctNS0xLTEtNzc5MDg_b9a1769c-7793-491d-b46b-537d2d57f8f6">P6Y1M6D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzctNy0xLTEtNzc5MDg_f7a8f00d-0936-49a2-b1e9-0aea950f4ac4"
      unitRef="usd">55516000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzktMS0xLTEtNzc5MDg_e1e0bd99-181e-4c68-950d-37ee1b8f8d63"
      unitRef="shares">5089579</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzktMy0xLTEtNzc5MDg_4b0fafcb-e84d-47f1-95b0-b6dc6c406203"
      unitRef="usdPerShare">4.93</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzktNS0xLTEtNzc5MDg_28cc3511-8b04-44dd-a910-8a3c28482e50">P5Y6M29D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTpjM2U3MmMyNDdjOTg0YTQzYmU4Y2JjN2MzMzU4YWY4Ni90YWJsZXJhbmdlOmMzZTcyYzI0N2M5ODRhNDNiZThjYmM3YzMzNThhZjg2XzktNy0xLTEtNzc5MDg_e12a8c2b-e9ea-4ec4-bf01-9c17d68441de"
      unitRef="usd">48635000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzMwOTM_399a5914-30ff-41ae-9836-76135a565fdc"
      unitRef="usd">6400000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzMwOTc_330b931b-3d7a-42d5-88ed-c09d6aa60a55"
      unitRef="usd">80700000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzU0OTc1NTgzMDE4Mg_fc6b9db3-1eb8-4312-b9a0-ae14bc3215e2"
      unitRef="usd">15700000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisesInPeriodTotalIntrinsicValue>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
      contextRef="id3f619358e9443e99c667e248fb606ef_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzMzMzY_9de2bcb1-4c6e-41f8-ad1d-2d642ca2ced4"
      unitRef="usd">14100000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="ic784f4217cd447739c4b1b7d7d1b0cc6_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzM0NTE_adcdc604-6f7d-4436-bbc1-efd4dd4146ee">P2Y1M24D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzkwMDg_f996c583-f27d-4b63-b5af-2e9c85524343">&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of stock options granted under the Company&#x2019;s equity incentive plans was estimated using the following assumptions:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:1pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Fair market value of common stock&lt;/span&gt;&lt;/td&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;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$18.63-$31.79&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 #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$39.75-$54.07&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 #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$3.20-$17.00&lt;/span&gt;&lt;/div&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Expected term (in years)&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5.0-7.0&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5.8-6.7&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5.7-6.4&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.8%-3.4%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.6%-1.0%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.3%-1.5%&lt;/span&gt;&lt;/div&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Expected volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;54%-57%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;51%-54%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50%-55%&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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Dividend rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;%&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted-average grant date fair value of options granted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$13.70&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:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$20.30&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:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$4.96&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The fair value of purchase right granted the under the Company&#x2019;s 2020 Employee Stock Purchase Plan was estimated using the following assumptions:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:1pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Expected term (in years)&lt;/span&gt;&lt;/td&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;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.5-1.0&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 #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.4-1.4&lt;/span&gt;&lt;/div&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Risk-free interest rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.6%-2.2%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.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:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Expected volatility&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;83%-79%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;60%-76%&lt;/span&gt;&lt;/div&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Dividend rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;%&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfShareBasedPaymentAwardStockOptionsValuationAssumptionsTableTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="i5b1b1ef57eeb4e0ea87637f75385ca1f_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzItMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpmM2IzMTU0ZWM1NTI0ZjI3YTk4NDU2OWE1Mzg3NzQzZF80_1f78bfab-aaef-4d9a-95cf-86932598c069"
      unitRef="usdPerShare">18.63</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="i81668e335aaf4d31b844154bf570f4bd_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzItMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpmM2IzMTU0ZWM1NTI0ZjI3YTk4NDU2OWE1Mzg3NzQzZF83_c0c5fca4-fedf-4769-9334-e221e78db4cf"
      unitRef="usdPerShare">31.79</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="i56ade6d13ec849b2884358cf0b828f8c_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzItMy0xLTEtNzc5MDgvdGV4dHJlZ2lvbjo4YTNlZDUwNGUyYmM0ZDBjOTdmYTJhODBkNDJiMTIxZF80_4e66ad8d-b100-4347-8020-f589005cc99d"
      unitRef="usdPerShare">39.75</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="ib5e5bde22f6141bcb7c9a03e7e65c57f_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzItMy0xLTEtNzc5MDgvdGV4dHJlZ2lvbjo4YTNlZDUwNGUyYmM0ZDBjOTdmYTJhODBkNDJiMTIxZF83_e742a89f-64ef-488c-be8d-2d56474ef443"
      unitRef="usdPerShare">54.07</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="i6b49d27921f344d491d143022650ca51_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzItNS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjplN2RhYmJmYTRiMjk0ZjY3ODA5MTFmNjQ3NmQ4MzVkOF80_f6be5e34-337e-4c54-9dff-be6080c5472c"
      unitRef="usdPerShare">3.20</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice
      contextRef="ica04873b926545f4944d7ddd5c93b644_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzItNS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjplN2RhYmJmYTRiMjk0ZjY3ODA5MTFmNjQ3NmQ4MzVkOF83_524ff50c-a734-4b38-899f-edb7d3a3ab5d"
      unitRef="usdPerShare">17.00</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i5dab4e920a8e4922839c3418d0ca08a3_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzMtMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjozMjZiNzNjMTRmYTk0NzViYmNkYzQ0YjdlYjRkOTA2MF80_beb35179-45cd-4e2f-b737-c4d44675ee48">P5Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i12b373911f8a444c9784df1b3d463e7b_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzMtMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjozMjZiNzNjMTRmYTk0NzViYmNkYzQ0YjdlYjRkOTA2MF83_f7cd8fba-f7e2-4400-94f2-36a2aefb96a1">P7Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="icba9b8108da24de7a2729baf5d6397ea_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzMtMy0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMjc3ZDQ1ZTFlYTM0ODZmYTcxNGI4MGZlZDA4ZDY4NV80_b818584d-63a3-4b76-8093-04dc584c0239">P5Y9M18D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i2e69679092c34a16af88b3fdb22d73e6_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzMtMy0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMjc3ZDQ1ZTFlYTM0ODZmYTcxNGI4MGZlZDA4ZDY4NV83_2a48e969-1a17-4321-a464-fc1b4175178b">P6Y8M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="ide158533dfbb4c2fb83d923b193e96f2_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzMtNS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjo1MmZjMTg0YTU4Zjc0ZWVlYThkOWRmYTIxYTkzMjVkZl81NDk3NTU4MTM5MDY_5c8fff53-44f4-4512-8b0a-ec15f039c43b">P5Y8M12D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i206a7e35498c47de92cd630bd521e036_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzMtNS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjo1MmZjMTg0YTU4Zjc0ZWVlYThkOWRmYTIxYTkzMjVkZl81NDk3NTU4MTM5Mzk_4b098918-1ed8-4069-b282-a1f351a53b52">P6Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i5dab4e920a8e4922839c3418d0ca08a3_D20220101-20221231"
      decimals="4"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzQtMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjo5YWI4OWJlOThiODY0OWYxYTgxYmFjN2EyMTM4YmM2NV80_bdcdb590-e1f9-41e7-9207-234c07cc9659"
      unitRef="number">0.018</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i12b373911f8a444c9784df1b3d463e7b_D20220101-20221231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzQtMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjo5YWI4OWJlOThiODY0OWYxYTgxYmFjN2EyMTM4YmM2NV83_a890df43-d064-460b-b199-2cebd69c1c2b"
      unitRef="number">0.034</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="icba9b8108da24de7a2729baf5d6397ea_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzQtMy0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMmQ4ODUzZWUxMGE0NjZhOTdiOGE4ODc2ZDhmZjMxYl80_c4502397-a492-4fa1-a66f-5c0384ca4560"
      unitRef="number">0.006</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i2e69679092c34a16af88b3fdb22d73e6_D20210101-20211231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzQtMy0xLTEtNzc5MDgvdGV4dHJlZ2lvbjoyMmQ4ODUzZWUxMGE0NjZhOTdiOGE4ODc2ZDhmZjMxYl83_1cb89bdf-ee0c-4f28-bcae-7d8af2ca38ee"
      unitRef="number">0.010</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="ide158533dfbb4c2fb83d923b193e96f2_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzQtNS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpmYzlhN2IxYmUwMzk0ZDk5OTlhZGZmMTk3ZWZmMWY1ZV80_41a6e4be-5c26-4694-ab7f-3eab4d66337e"
      unitRef="number">0.003</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i206a7e35498c47de92cd630bd521e036_D20200101-20201231"
      decimals="3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzQtNS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpmYzlhN2IxYmUwMzk0ZDk5OTlhZGZmMTk3ZWZmMWY1ZV83_e55cbc89-dc9c-4d0c-b272-50b499e18e6b"
      unitRef="number">0.015</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i5dab4e920a8e4922839c3418d0ca08a3_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzUtMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpmOTQ0ZDliMTY1NTM0NWNhYjQ3OTM4M2NkZWEyMmJkY180_1b51034c-bb2d-4d93-a51a-300b84f987b4"
      unitRef="number">0.54</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i12b373911f8a444c9784df1b3d463e7b_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzUtMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpmOTQ0ZDliMTY1NTM0NWNhYjQ3OTM4M2NkZWEyMmJkY183_a11982fa-b010-45da-abb7-64bdfcc8f02d"
      unitRef="number">0.57</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="icba9b8108da24de7a2729baf5d6397ea_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzUtMy0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpjNGYxZTRiYmJjNTU0ZjNkYTBiNjA4MzUwZDg5MTBjY180_e3f023d2-2306-45f9-b389-379c18fb348f"
      unitRef="number">0.51</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i2e69679092c34a16af88b3fdb22d73e6_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzUtMy0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpjNGYxZTRiYmJjNTU0ZjNkYTBiNjA4MzUwZDg5MTBjY183_b64fe8a6-dd93-4528-bcdb-b111f35ffa0c"
      unitRef="number">0.54</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="ide158533dfbb4c2fb83d923b193e96f2_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzUtNS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjowYWJkMjc1ZGQ1MWU0MDllOGJhOTZmOWUxNDUzZWVmYV80_046b5891-9fb2-49eb-b042-0037d2d163a6"
      unitRef="number">0.50</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i206a7e35498c47de92cd630bd521e036_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzUtNS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjowYWJkMjc1ZGQ1MWU0MDllOGJhOTZmOWUxNDUzZWVmYV83_2420a881-4564-4733-a124-a2342a879b3f"
      unitRef="number">0.55</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzYtMS0xLTEtNzc5MDg_50dbc814-88bb-42e1-9d2a-c4e5b2c05b6c"
      unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzYtMy0xLTEtNzc5MDg_20e50540-6e71-4407-87c9-e5c9501d9caf"
      unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzYtNS0xLTEtNzc5MDg_457f2b39-4738-493c-a90d-0e3f26f4a2f5"
      unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzctMS0xLTEtOTExNDY_95a79e79-b0be-4afd-8413-0981181013f6"
      unitRef="usdPerShare">13.70</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzctMy0xLTEtOTExNTE_6a9b6667-ee93-4fc8-bc6e-08960a952059"
      unitRef="usdPerShare">20.30</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo4NDQzNTk1ZmU1MjQ0NThlYTY1M2FjMjg1MGFkNmQ2Ny90YWJsZXJhbmdlOjg0NDM1OTVmZTUyNDQ1OGVhNjUzYWMyODUwYWQ2ZDY3XzctNS0xLTEtOTExNTY_128812f1-a322-44a2-a559-b5813115daad"
      unitRef="usdPerShare">4.96</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="ic784f4217cd447739c4b1b7d7d1b0cc6_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzgyNDYzMzcyMjQyMjc_842d28ab-e945-45cd-a254-eab88388dc0d"
      unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1
      contextRef="i0b3e787d06714102bd623e435fa5eaa3_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzU0OTU_36dc11a4-87ee-4553-a894-6c669c15e0d9">P4Y</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardAwardVestingPeriod1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i754c3b6332b44bdc9563b2d160a6b13d_I20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3Nzk5NzU3NTQwNWU0ZWY2OTI5ZmI4NTBhNTgwZDgyZS90YWJsZXJhbmdlOjc3OTk3NTc1NDA1ZTRlZjY5MjlmYjg1MGE1ODBkODJlXzItMS0xLTEtNzc5MDg_53b12e29-17fe-4d46-8f0a-60753bc8c572"
      unitRef="shares">483302</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i754c3b6332b44bdc9563b2d160a6b13d_I20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3Nzk5NzU3NTQwNWU0ZWY2OTI5ZmI4NTBhNTgwZDgyZS90YWJsZXJhbmdlOjc3OTk3NTc1NDA1ZTRlZjY5MjlmYjg1MGE1ODBkODJlXzItMy0xLTEtNzc5MDg_3d988234-c573-4f91-8f4b-1d82102e5e95"
      unitRef="usdPerShare">35.23</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3Nzk5NzU3NTQwNWU0ZWY2OTI5ZmI4NTBhNTgwZDgyZS90YWJsZXJhbmdlOjc3OTk3NTc1NDA1ZTRlZjY5MjlmYjg1MGE1ODBkODJlXzItNS0xLTEtNzc5MDg_57fec12d-c80d-43be-98b5-b39b24a97491"
      unitRef="usd">17025000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="i0b3e787d06714102bd623e435fa5eaa3_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3Nzk5NzU3NTQwNWU0ZWY2OTI5ZmI4NTBhNTgwZDgyZS90YWJsZXJhbmdlOjc3OTk3NTc1NDA1ZTRlZjY5MjlmYjg1MGE1ODBkODJlXzMtMS0xLTEtNzc5MDg_80de28f3-5d8f-4737-b551-ca20d7fcd599"
      unitRef="shares">1587930</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="i0b3e787d06714102bd623e435fa5eaa3_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3Nzk5NzU3NTQwNWU0ZWY2OTI5ZmI4NTBhNTgwZDgyZS90YWJsZXJhbmdlOjc3OTk3NTc1NDA1ZTRlZjY5MjlmYjg1MGE1ODBkODJlXzMtMy0xLTEtNzc5MDg_c8832a7a-7486-41ba-8474-4ff36661f459"
      unitRef="usdPerShare">25.01</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="i0b3e787d06714102bd623e435fa5eaa3_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3Nzk5NzU3NTQwNWU0ZWY2OTI5ZmI4NTBhNTgwZDgyZS90YWJsZXJhbmdlOjc3OTk3NTc1NDA1ZTRlZjY5MjlmYjg1MGE1ODBkODJlXzQtMS0xLTEtNzc5MDg_08517f47-b2e4-42b0-a228-a55cc009bb7e"
      unitRef="shares">308433</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="i0b3e787d06714102bd623e435fa5eaa3_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3Nzk5NzU3NTQwNWU0ZWY2OTI5ZmI4NTBhNTgwZDgyZS90YWJsZXJhbmdlOjc3OTk3NTc1NDA1ZTRlZjY5MjlmYjg1MGE1ODBkODJlXzQtMy0xLTEtNzc5MDg_61381739-0080-4128-9650-89b8a1064336"
      unitRef="usdPerShare">30.76</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="i0b3e787d06714102bd623e435fa5eaa3_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3Nzk5NzU3NTQwNWU0ZWY2OTI5ZmI4NTBhNTgwZDgyZS90YWJsZXJhbmdlOjc3OTk3NTc1NDA1ZTRlZjY5MjlmYjg1MGE1ODBkODJlXzUtMS0xLTEtNzc5MDg_d1c9280c-0d05-41fb-8068-4eae58c28d0d"
      unitRef="shares">180817</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="i0b3e787d06714102bd623e435fa5eaa3_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3Nzk5NzU3NTQwNWU0ZWY2OTI5ZmI4NTBhNTgwZDgyZS90YWJsZXJhbmdlOjc3OTk3NTc1NDA1ZTRlZjY5MjlmYjg1MGE1ODBkODJlXzUtMy0xLTEtNzc5MDg_5d5fa3ee-0ac4-44c6-8e41-ece999eef2a9"
      unitRef="usdPerShare">29.51</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="i321d1d4f2e2049d5a2d80a214a6a5556_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3Nzk5NzU3NTQwNWU0ZWY2OTI5ZmI4NTBhNTgwZDgyZS90YWJsZXJhbmdlOjc3OTk3NTc1NDA1ZTRlZjY5MjlmYjg1MGE1ODBkODJlXzYtMS0xLTEtNzc5MDg_4a512f09-33a4-4453-bd9c-6331db65ed1e"
      unitRef="shares">1581982</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="i321d1d4f2e2049d5a2d80a214a6a5556_I20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3Nzk5NzU3NTQwNWU0ZWY2OTI5ZmI4NTBhNTgwZDgyZS90YWJsZXJhbmdlOjc3OTk3NTc1NDA1ZTRlZjY5MjlmYjg1MGE1ODBkODJlXzYtMy0xLTEtNzc5MDg_5690a276-45ec-4c07-80ea-517699bb65b0"
      unitRef="usdPerShare">26.49</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3Nzk5NzU3NTQwNWU0ZWY2OTI5ZmI4NTBhNTgwZDgyZS90YWJsZXJhbmdlOjc3OTk3NTc1NDA1ZTRlZjY5MjlmYjg1MGE1ODBkODJlXzYtNS0xLTEtNzc5MDg_b7b58649-b315-4684-93dc-0c202abf6c38"
      unitRef="usd">20264000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardEquityInstrumentsOtherThanOptionsAggregateIntrinsicValueNonvested>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="i321d1d4f2e2049d5a2d80a214a6a5556_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzU3Mjc_eccaf9e5-7932-4182-8e93-2162c681af53"
      unitRef="usd">37800000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="i0b3e787d06714102bd623e435fa5eaa3_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzU4MzM_c77eeb90-0193-4aa4-bf55-fd92d28b22c5">P2Y11M15D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="ibe686ae6e91c45a6a6964589e191b1fc_I20201130"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzYwNzk_1fe1445c-c219-4f94-b898-f93729a7c401"
      unitRef="shares">500000</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <pubm:ShareBasedCompensationArrangementAutomaticAnnualIncreaseTerm
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzgyNDYzMzcyMjQ1ODA_af92bf0d-e4e5-4e7f-91b6-dcf0b42f9304"
      unitRef="calendaryear">10</pubm:ShareBasedCompensationArrangementAutomaticAnnualIncreaseTerm>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="i6c7276787b584687909b8d7f60727aa5_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzY3MTA_80e4b059-2fe5-4e77-8eb6-3dc7b7265834"
      unitRef="shares">7500000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="i62bb352b614c4cd389d56ea4ba348218_I20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzY3ODA_5fe7e86d-b83e-466e-bb0c-7a87a16be40e"
      unitRef="shares">529888</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardDiscountFromMarketPricePurchaseDate
      contextRef="ibaeccb41f8e14f1380ecb99d9a1c7f15_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzcwMDM_9bcb15e1-a45c-46fe-933d-5ee12d0dca09"
      unitRef="number">0.85</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardDiscountFromMarketPricePurchaseDate>
    <pubm:ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod
      contextRef="ibaeccb41f8e14f1380ecb99d9a1c7f15_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzgyNDYzMzcyMjQyMzk_9fca85c4-a902-4a1a-92fb-8e4bf89447c0">P27M</pubm:ShareBasedCompensationArrangementByShareBasedPaymentAwardOfferingPeriod>
    <pubm:ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePeriod
      contextRef="ibaeccb41f8e14f1380ecb99d9a1c7f15_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzgyNDYzMzcyMjQyNTc_3a7fc69e-7e63-48ba-b055-b982b16ddeb0">P6M</pubm:ShareBasedCompensationArrangementByShareBasedPaymentAwardPurchasePeriod>
    <pubm:ShareBasedCompensationArrangementByShareBasedPaymentAwardAmountWithheldForEmployeeStockPurchasePlan
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzczODU_55baffe8-3b50-4506-bff9-d826fe396ac7"
      unitRef="usd">100000</pubm:ShareBasedCompensationArrangementByShareBasedPaymentAwardAmountWithheldForEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="ib73c513d931b4ce98184ba59ab3f1850_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1Xzc1NzY_24b88e48-2484-4744-82bc-51626f80a3b9"
      unitRef="shares">183587</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="i62bb352b614c4cd389d56ea4ba348218_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1Xzc3MzA_0843dc44-fe2a-4bbe-a746-491b347f41b7"
      unitRef="usd">400000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="ibaeccb41f8e14f1380ecb99d9a1c7f15_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1Xzc4MDM_f2d7ac5f-3ded-4b1b-91fb-d8c01678675e">P0Y4M28D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i80ac56bad5394a988897e3d23eefb4c5_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTphN2NjY2ZkNTg3ZWE0ZGU3ODg1ZGY2ZDdjZjJiNTM2YS90YWJsZXJhbmdlOmE3Y2NjZmQ1ODdlYTRkZTc4ODVkZjZkN2NmMmI1MzZhXzItMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjowODA4YjRjMDk3ODI0MmMzYjJhNmQ1MzMyYjMzMzE1N181NDk3NTU4MTM5MTY_bb55b8b5-b46c-4c6a-b705-3cfbf3aa3515">P0Y6M</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="i2012baed1612484a8a186fb7b6ae08c9_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTphN2NjY2ZkNTg3ZWE0ZGU3ODg1ZGY2ZDdjZjJiNTM2YS90YWJsZXJhbmdlOmE3Y2NjZmQ1ODdlYTRkZTc4ODVkZjZkN2NmMmI1MzZhXzItMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjowODA4YjRjMDk3ODI0MmMzYjJhNmQ1MzMyYjMzMzE1N181NDk3NTU4MTM5MjQ_d6afe711-aac5-43e2-b7e6-aa98ba2e31ce">P1Y</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="icdb6b9613a2e4ab7940d210a42e40583_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTphN2NjY2ZkNTg3ZWE0ZGU3ODg1ZGY2ZDdjZjJiNTM2YS90YWJsZXJhbmdlOmE3Y2NjZmQ1ODdlYTRkZTc4ODVkZjZkN2NmMmI1MzZhXzItMy0xLTEtODIzODUvdGV4dHJlZ2lvbjphY2IyZThjNzEwYjE0ZWEyOGRlN2Y3MjY2MThlNGQ5ZV81NDk3NTU4MTM5NDQ_252bc9c5-eaf9-4b29-84ed-edbe2813cc1c">P0Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1
      contextRef="ie0ae34afcf6246c98339f49a22e3402b_D20210101-20211231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTphN2NjY2ZkNTg3ZWE0ZGU3ODg1ZGY2ZDdjZjJiNTM2YS90YWJsZXJhbmdlOmE3Y2NjZmQ1ODdlYTRkZTc4ODVkZjZkN2NmMmI1MzZhXzItMy0xLTEtODIzODUvdGV4dHJlZ2lvbjphY2IyZThjNzEwYjE0ZWEyOGRlN2Y3MjY2MThlNGQ5ZV81NDk3NTU4MTM5NjU_1ed61edf-c69d-43df-b13f-dd1c17abcc30">P1Y4M24D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardFairValueAssumptionsExpectedTerm1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i80ac56bad5394a988897e3d23eefb4c5_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTphN2NjY2ZkNTg3ZWE0ZGU3ODg1ZGY2ZDdjZjJiNTM2YS90YWJsZXJhbmdlOmE3Y2NjZmQ1ODdlYTRkZTc4ODVkZjZkN2NmMmI1MzZhXzMtMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpmZmU0MzllOWEzNGE0YmJmOGJhNjUzNzMzNGIzOTdlOF81NDk3NTU4MTM5MDA_8500f64b-ba1e-4150-8bc5-d3260432c93a"
      unitRef="number">0.016</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="i2012baed1612484a8a186fb7b6ae08c9_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTphN2NjY2ZkNTg3ZWE0ZGU3ODg1ZGY2ZDdjZjJiNTM2YS90YWJsZXJhbmdlOmE3Y2NjZmQ1ODdlYTRkZTc4ODVkZjZkN2NmMmI1MzZhXzMtMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpmZmU0MzllOWEzNGE0YmJmOGJhNjUzNzMzNGIzOTdlOF81NDk3NTU4MTM5MDQ_0fcbbdbe-4ba6-4bce-851a-defbdfe2de6d"
      unitRef="number">0.022</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate
      contextRef="id67a7f2eb41441efa7c308f57e5563d5_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTphN2NjY2ZkNTg3ZWE0ZGU3ODg1ZGY2ZDdjZjJiNTM2YS90YWJsZXJhbmdlOmE3Y2NjZmQ1ODdlYTRkZTc4ODVkZjZkN2NmMmI1MzZhXzMtMy0xLTEtODIzODUvdGV4dHJlZ2lvbjoyNmQ3MmIxYzBiYTI0NDQ3YTgzYmM5MWU0NjA1Mzg0NV81NDk3NTU4MTM5MDg_67abc7e7-3154-4298-bc9f-c530a0455658"
      unitRef="number">0.001</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsRiskFreeInterestRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i80ac56bad5394a988897e3d23eefb4c5_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTphN2NjY2ZkNTg3ZWE0ZGU3ODg1ZGY2ZDdjZjJiNTM2YS90YWJsZXJhbmdlOmE3Y2NjZmQ1ODdlYTRkZTc4ODVkZjZkN2NmMmI1MzZhXzQtMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjozNTk3MWY1YTQ2ZGM0NzdiOWJjZDJhYzA1MDJkZDhmZV81NDk3NTU4MTM5MTk_5410cf7a-a049-4eb8-a72b-e72bdbe2899f"
      unitRef="number">0.83</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="i2012baed1612484a8a186fb7b6ae08c9_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTphN2NjY2ZkNTg3ZWE0ZGU3ODg1ZGY2ZDdjZjJiNTM2YS90YWJsZXJhbmdlOmE3Y2NjZmQ1ODdlYTRkZTc4ODVkZjZkN2NmMmI1MzZhXzQtMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjozNTk3MWY1YTQ2ZGM0NzdiOWJjZDJhYzA1MDJkZDhmZV81NDk3NTU4MTM5Mjc_4e6f1cb4-94b7-476c-92b1-a54632ed45b2"
      unitRef="number">0.79</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="icdb6b9613a2e4ab7940d210a42e40583_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTphN2NjY2ZkNTg3ZWE0ZGU3ODg1ZGY2ZDdjZjJiNTM2YS90YWJsZXJhbmdlOmE3Y2NjZmQ1ODdlYTRkZTc4ODVkZjZkN2NmMmI1MzZhXzQtMy0xLTEtODIzODUvdGV4dHJlZ2lvbjo1ZTM3Y2U2NmIyM2U0NmQ5ODQyMjk5MWQzMmMwYjBiNF81NDk3NTU4MTM5MTY_f9d8cbff-41f8-409e-9a7f-b5de7cba209f"
      unitRef="number">0.60</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate
      contextRef="ie0ae34afcf6246c98339f49a22e3402b_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTphN2NjY2ZkNTg3ZWE0ZGU3ODg1ZGY2ZDdjZjJiNTM2YS90YWJsZXJhbmdlOmE3Y2NjZmQ1ODdlYTRkZTc4ODVkZjZkN2NmMmI1MzZhXzQtMy0xLTEtODIzODUvdGV4dHJlZ2lvbjo1ZTM3Y2U2NmIyM2U0NmQ5ODQyMjk5MWQzMmMwYjBiNF81NDk3NTU4MTM5MjI_b142855b-278f-41c6-875f-efc63ba321cb"
      unitRef="number">0.76</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedVolatilityRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="i768e26ee73164adbadce96334fecd700_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTphN2NjY2ZkNTg3ZWE0ZGU3ODg1ZGY2ZDdjZjJiNTM2YS90YWJsZXJhbmdlOmE3Y2NjZmQ1ODdlYTRkZTc4ODVkZjZkN2NmMmI1MzZhXzUtMS0xLTEtNzc5MDgvdGV4dHJlZ2lvbjpjYjZmZDA5NmMyOGQ0NzY5ODVlYjJmZDM2YzE4YzRkNF81NDk3NTU4MTM4OTY_2c37b25e-e661-43a0-962d-1c6a86624237"
      unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="id67a7f2eb41441efa7c308f57e5563d5_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTphN2NjY2ZkNTg3ZWE0ZGU3ODg1ZGY2ZDdjZjJiNTM2YS90YWJsZXJhbmdlOmE3Y2NjZmQ1ODdlYTRkZTc4ODVkZjZkN2NmMmI1MzZhXzUtMy0xLTEtODIzODUvdGV4dHJlZ2lvbjplZmM1MjhkNGI4ODE0NjJmODE1NjQ3MzViYjg3OTY3N181NDk3NTU4MTM4OTg_4fd72f2d-fa0c-4980-916a-0ce06125ead7"
      unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzgyNDYzMzcyMjQyNTg_cce421a1-8f88-4e8a-b205-e143c2cacb01"
      unitRef="number">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardFairValueAssumptionsExpectedDividendRate>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90ZXh0cmVnaW9uOjY3YTBiNDc0M2FjZTQ2ZmI4NDhjNWJiZDcxNzkwMDQ1XzkwMTE_a9e26324-866d-4eef-b4ee-0c055733af3d">&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Cost of revenue&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,135&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;825&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;86&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Technology and development&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,225&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,232&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;599&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Sales and marketing&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7,645&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,176&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,101&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;General and administrative&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,641&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,874&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,777&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total stock-based compensation expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,646&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;14,107&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,563&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Tax benefit from stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(3,537)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,825)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(493)&lt;/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 10pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total stock-based compensation expense, net of tax effect&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;17,109&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,282&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,070&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;</us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i64d33b80a5984b5096cb49a794116005_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzItMS0xLTEtNzc5MDg_93db572d-61fa-4238-962f-4a6870faec2d"
      unitRef="usd">1135000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ifad20a26c66f4bd6b2bb8248da930334_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzItMy0xLTEtNzc5MDg_64a8be0d-2411-4def-8c1b-49c93f001f4f"
      unitRef="usd">825000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i319eb45d4a37466da51669533e66a801_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzItNS0xLTEtNzc5MDg_5281a69f-aaeb-4330-bec7-928487ea2f64"
      unitRef="usd">86000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i6b00559a8b6a47a2836fc338e551da3a_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzMtMS0xLTEtNzc5MDg_a3b5bcc9-b58e-49d2-9a72-4ae11671eda0"
      unitRef="usd">3225000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i576ccb529de3411cb97f9fee0cdaf9a1_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzMtMy0xLTEtNzc5MDg_6cf9a882-5c41-49b1-bf20-a42345daf651"
      unitRef="usd">2232000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ibdadcf1c92614413abea3a20b30303e7_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzMtNS0xLTEtNzc5MDg_962c5d6f-a898-4e53-a58f-1d71d2aaa199"
      unitRef="usd">599000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="id282346b7688465799c3f88e518d3369_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzQtMS0xLTEtNzc5MDg_bdc454e9-3504-459d-ae66-74a2d10a8c51"
      unitRef="usd">7645000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ieb439b6e635a44d1ba1e1c2e8e5ca3cc_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzQtMy0xLTEtNzc5MDg_ab368336-994b-440e-a71a-af20cfb1cd45"
      unitRef="usd">5176000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i386854b9492e46fb976ced1e21e01e6e_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzQtNS0xLTEtNzc5MDg_d648e536-86a4-4f76-b18c-dce318e20ec1"
      unitRef="usd">1101000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i5236b15ee484491db19aaa0812452ef0_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzUtMS0xLTEtNzc5MDg_6dedcc7c-3e14-4389-9aa5-a85763b6a369"
      unitRef="usd">8641000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i7944cb9c9ac548cca405db219b212ce7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzUtMy0xLTEtNzc5MDg_cea8e55c-7836-4e3f-8e93-1707d23706cd"
      unitRef="usd">5874000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i9f7a923504174f0ea52ea0c5fcb4b1b8_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzUtNS0xLTEtNzc5MDg_0846e2aa-ea4b-4a7f-ace5-203761294019"
      unitRef="usd">1777000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzYtMS0xLTEtNzc5MDg_255714bd-7bc8-4502-b618-b552a527ab1e"
      unitRef="usd">20646000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzYtMy0xLTEtNzc5MDg_445ccb7e-ddc0-4d0c-9c57-8d1c3684ad22"
      unitRef="usd">14107000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzYtNS0xLTEtNzc5MDg_20a6edc3-c6e7-40e4-8dab-3f382f907a36"
      unitRef="usd">3563000</us-gaap:AllocatedShareBasedCompensationExpense>
    <pubm:ShareBasedPaymentArrangementTaxBenefit
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzctMS0xLTEtNzc5MDg_4410e8e2-ea2e-4c7b-96ac-6cb929619592"
      unitRef="usd">3537000</pubm:ShareBasedPaymentArrangementTaxBenefit>
    <pubm:ShareBasedPaymentArrangementTaxBenefit
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzctMy0xLTEtNzc5MDg_a44bdd95-a239-4490-9a32-e869ad719463"
      unitRef="usd">1825000</pubm:ShareBasedPaymentArrangementTaxBenefit>
    <pubm:ShareBasedPaymentArrangementTaxBenefit
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzctNS0xLTEtNzc5MDg_1767706d-0d5e-4c5b-9ec4-f60d63ef9efc"
      unitRef="usd">493000</pubm:ShareBasedPaymentArrangementTaxBenefit>
    <pubm:ShareBasedPaymentArrangementExpenseNet
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzgtMS0xLTEtNzc5MDg_3dbd0f08-84dd-46b6-8497-41abca0a95bc"
      unitRef="usd">17109000</pubm:ShareBasedPaymentArrangementExpenseNet>
    <pubm:ShareBasedPaymentArrangementExpenseNet
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzgtMy0xLTEtNzc5MDg_56c280ab-bc99-4b6c-acd4-85abc61f27f4"
      unitRef="usd">12282000</pubm:ShareBasedPaymentArrangementExpenseNet>
    <pubm:ShareBasedPaymentArrangementExpenseNet
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzAvZnJhZzo2N2EwYjQ3NDNhY2U0NmZiODQ4YzViYmQ3MTc5MDA0NS90YWJsZTo3YTQ5NjcxYzJkN2U0NmY1OTQ0OWMwYzgzYmFkMjAxZS90YWJsZXJhbmdlOjdhNDk2NzFjMmQ3ZTQ2ZjU5NDQ5YzBjODNiYWQyMDFlXzgtNS0xLTEtNzc5MDg_9101a877-3cac-4b2a-babf-9f05562dc172"
      unitRef="usd">3070000</pubm:ShareBasedPaymentArrangementExpenseNet>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90ZXh0cmVnaW9uOjEwMmJmZGU0ODcyNzRlOTM5MDkyY2I5NTg5NTY5ZjI4XzEwMDk_7576ea8d-760a-4679-bb96-683ed12d5f70">Net Income Per Share Attributable to Common Stockholders&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has two classes of common stock, Class A and Class B. The rights, including the liquidation and dividend rights, of the holders of Class A and Class B common stock are identical, except with respect to voting. As the liquidation and dividend rights are identical, the undistributed earnings are allocated on a proportionate basis and the resulting net loss per share attributed to common stockholders will, therefore, be the same for both Class A and Class B common stock on an individual or combined basis.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth the computation of the Company&#x2019;s basic and diluted net income per share (in thousands, except share and per share data):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:3.37pt;padding-right:3.37pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;(in thousands, except share and per share data)&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 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Numerator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="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 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,613&#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 34pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Less: Undistributed earnings allocated to participating securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(20,187)&lt;/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 46pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income attributable to common stockholders &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,426&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Denominator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 34pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted average common shares outstanding &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;52,278,009&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,184,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,642,293&#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 46pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income per share attributable to common stockholders &#x2013; basic:&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.55&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.51&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Numerator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top: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 40pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income attributable to common stockholders - diluted&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7,929&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Denominator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top: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 40pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted average shares outstanding &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;52,278,009&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,184,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,642,293&#160;&lt;/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 31pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Options to purchase common stock&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,605,927&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,353,779&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,483,589&#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 31pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Restricted stock&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,647&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;29,662&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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 2px 31pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Employee stock purchase plan shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;11,614&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;60,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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 40pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted average shares outstanding &#x2013; diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,908,197&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,628,574&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;17,125,882&#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 40pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income per share attributable to common stockholders &#x2013; diluted&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.50&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #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:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.00&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #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:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #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;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following weighted-average outstanding shares of common stock equivalents were excluded from the computation of diluted net income per share attributable to common stockholders for the periods presented because including them would have been anti-dilutive:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.293%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.933%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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;div style="padding-right:2.25pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Options to purchase common stock&lt;/span&gt;&lt;/div&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,016,449&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;671,244&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;846,481&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:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:120%"&gt;Unvested restricted stock units&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,164,817&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:120%"&gt;ESPP&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;72,522&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&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;div style="padding-left:21pt;padding-right:2.25pt;text-indent:-9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total common stock equivalents excluded from net income per share attributable to common stockholders &#x2013; diluted&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,253,788&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;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;671,244&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;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;846,481&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicByCommonClassTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90ZXh0cmVnaW9uOjEwMmJmZGU0ODcyNzRlOTM5MDkyY2I5NTg5NTY5ZjI4XzEwMTA_9b54c676-1210-463b-81c7-27147c937c3c">&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth the computation of the Company&#x2019;s basic and diluted net income per share (in thousands, except share and per share data):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:3.37pt;padding-right:3.37pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;(in thousands, except share and per share data)&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 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Numerator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="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 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,613&#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 34pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Less: Undistributed earnings allocated to participating securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(20,187)&lt;/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 46pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income attributable to common stockholders &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,426&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Denominator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 34pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted average common shares outstanding &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;52,278,009&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,184,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,642,293&#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 46pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income per share attributable to common stockholders &#x2013; basic:&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.55&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.51&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Numerator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top: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 40pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income attributable to common stockholders - diluted&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7,929&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Denominator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top: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 40pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted average shares outstanding &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;52,278,009&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,184,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,642,293&#160;&lt;/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 31pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Options to purchase common stock&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,605,927&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,353,779&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,483,589&#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 31pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Restricted stock&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,647&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;29,662&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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 2px 31pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Employee stock purchase plan shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;11,614&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;60,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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 40pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted average shares outstanding &#x2013; diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,908,197&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,628,574&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;17,125,882&#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 40pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income per share attributable to common stockholders &#x2013; diluted&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.50&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #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:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.00&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #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:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEarningsPerShareBasicByCommonClassTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareDilutedByCommonClassTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90ZXh0cmVnaW9uOjEwMmJmZGU0ODcyNzRlOTM5MDkyY2I5NTg5NTY5ZjI4XzEwMTA_c7a4b644-38e9-4594-a58f-ff863d696364">&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table sets forth the computation of the Company&#x2019;s basic and diluted net income per share (in thousands, except share and per share data):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-bottom:1pt solid #000;border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2020&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="15" style="border-top:1pt solid #000;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;div style="padding-left:3.37pt;padding-right:3.37pt;text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;(in thousands, except share and per share data)&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 2px 13pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Numerator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="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 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,613&#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 34pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Less: Undistributed earnings allocated to participating securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(20,187)&lt;/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 46pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income attributable to common stockholders &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,426&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Denominator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 34pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted average common shares outstanding &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;52,278,009&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,184,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,642,293&#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 46pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income per share attributable to common stockholders &#x2013; basic:&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.55&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.13&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.51&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Numerator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top: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 40pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income attributable to common stockholders - diluted&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,705&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,604&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;7,929&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Denominator:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:3pt double #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top: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 40pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted average shares outstanding &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;52,278,009&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,184,455&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,642,293&#160;&lt;/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 31pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Options to purchase common stock&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,605,927&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,353,779&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,483,589&#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 31pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Restricted stock&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,647&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;29,662&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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 2px 31pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Employee stock purchase plan shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;11,614&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;60,678&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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 40pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Weighted average shares outstanding &#x2013; diluted&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,908,197&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56,628,574&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;17,125,882&#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 40pt;text-align:left;text-indent:-9pt;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net income per share attributable to common stockholders &#x2013; diluted&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.50&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #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:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.00&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #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:3pt double #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.46&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:3pt double #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEarningsPerShareDilutedByCommonClassTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzQtMS0xLTEtNzc5MDg_c7270a40-4a96-43eb-b8c2-2296ad37b8de"
      unitRef="usd">28705000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzQtMy0xLTEtNzc5MDg_e5ebb723-3c6a-46d4-86f5-bfd34869543e"
      unitRef="usd">56604000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzQtNS0xLTEtNzc5MDg_7a457cef-127d-4ff9-ad8a-d687ee23be45"
      unitRef="usd">26613000</us-gaap:NetIncomeLoss>
    <us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzUtMS0xLTEtNzc5MDg_5068668e-cb8c-4b2b-9be1-52a8b13b24d3"
      unitRef="usd">0</us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic>
    <us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzUtMy0xLTEtNzc5MDg_78785b4a-b24e-4849-be33-7da618bedec4"
      unitRef="usd">0</us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic>
    <us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzUtNS0xLTEtNzc5MDg_c36f0a2e-0215-409e-bc7c-817f998d5682"
      unitRef="usd">20187000</us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzYtMS0xLTEtNzc5MDg_e168e7e8-7ade-424b-bc6f-dbf4cc5cfa2c"
      unitRef="usd">28705000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzYtMy0xLTEtNzc5MDg_896025d1-d9aa-41ef-a5c4-42961d956d1f"
      unitRef="usd">56604000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzYtNS0xLTEtNzc5MDg_5ccd6c63-7f22-4580-96ab-46de0921ef5a"
      unitRef="usd">6426000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzgtMS0xLTEtNzc5MDg_11894477-7f7c-465b-b53e-7c61721bae92"
      unitRef="shares">52278009</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzgtMy0xLTEtNzc5MDg_76428ea0-fd04-45cc-931a-3fa6db93e842"
      unitRef="shares">50184455</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzgtNS0xLTEtNzc5MDg_06bb1633-6fd8-485a-aec2-d521e960f7a1"
      unitRef="shares">12642293</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzktMS0xLTEtNzc5MDg_f7a607dc-5398-47e6-abc2-00595b27c04e"
      unitRef="usdPerShare">0.55</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzktMy0xLTEtNzc5MDg_0774cd31-0944-484c-8f2e-b80e40b25985"
      unitRef="usdPerShare">1.13</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzktNS0xLTEtNzc5MDg_1b9eb208-77f4-456e-95a7-988998a9aa5a"
      unitRef="usdPerShare">0.51</us-gaap:EarningsPerShareBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzExLTEtMS0xLTc3OTA4_8f01011d-6ce4-43b9-bbf3-767ba1e1d6cb"
      unitRef="usd">28705000</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzExLTMtMS0xLTc3OTA4_ecefc9c0-ab53-43c9-a818-bdd417ac8c02"
      unitRef="usd">56604000</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzExLTUtMS0xLTc3OTA4_3a014352-04d2-4d6a-bf82-14adacca21fb"
      unitRef="usd">7929000</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzEzLTEtMS0xLTc3OTA4_f8e7cded-5349-4411-9ac8-020b9469344f"
      unitRef="shares">52278009</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzEzLTMtMS0xLTc3OTA4_81bce8e2-0219-438e-a064-28dbddab857c"
      unitRef="shares">50184455</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzEzLTUtMS0xLTc3OTA4_552240ca-4b7f-44b3-888c-3b4c2884addb"
      unitRef="shares">12642293</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE0LTEtMS0xLTc3OTA4_d287edde-21d3-47b9-ab8e-4e502326d87b"
      unitRef="shares">4605927</pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions>
    <pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE0LTMtMS0xLTc3OTA4_9d695565-55d2-46f9-a0b6-0c3ebac429ac"
      unitRef="shares">6353779</pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions>
    <pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE0LTUtMS0xLTc3OTA4_78426b78-07cd-41bb-bd41-cd1f063f7f35"
      unitRef="shares">4483589</pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions>
    <pubm:IncrementalCommonSharesAttributableToRestrictedStock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE1LTEtMS0xLTc3OTA4_29ecd717-2003-42c2-a6d8-11805d53197b"
      unitRef="shares">12647</pubm:IncrementalCommonSharesAttributableToRestrictedStock>
    <pubm:IncrementalCommonSharesAttributableToRestrictedStock
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE1LTMtMS0xLTc3OTA4_ea679c6e-a6ff-4257-8d1a-81f4b6ad63ab"
      unitRef="shares">29662</pubm:IncrementalCommonSharesAttributableToRestrictedStock>
    <pubm:IncrementalCommonSharesAttributableToRestrictedStock
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE1LTUtMS0xLTc3OTA4_037d616e-841e-4d47-9448-5f5b5e842f7e"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToRestrictedStock>
    <pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlanShares
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE2LTEtMS0xLTc3OTA4_e11312f4-24d4-4fdd-b7b0-aa63a2198493"
      unitRef="shares">11614</pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlanShares>
    <pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlanShares
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE2LTMtMS0xLTc3OTA4_aaf6df1a-2c34-4bbb-aaec-646b2dc0d74f"
      unitRef="shares">60678</pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlanShares>
    <pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlanShares
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE2LTUtMS0xLTc3OTA4_201d478c-01e7-4125-ae34-e0b7a8ab5d94"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlanShares>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE4LTEtMS0xLTc3OTA4_291a5e68-8090-455a-a510-34d1427adbf2"
      unitRef="shares">56908197</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE4LTMtMS0xLTc3OTA4_d1b5a01a-8c93-4911-a76f-7c72cdf1baed"
      unitRef="shares">56628574</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE4LTUtMS0xLTc3OTA4_9abefd1b-a646-4a7c-bc95-7d3334f8ced8"
      unitRef="shares">17125882</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareDiluted
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE5LTEtMS0xLTc3OTA4_fa3b3944-fa1c-49fd-8688-302de6e887ca"
      unitRef="usdPerShare">0.50</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE5LTMtMS0xLTc3OTA4_18744c50-477b-4535-ab42-4d4b19933fd4"
      unitRef="usdPerShare">1.00</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo3YWU2ZjczM2JhYTk0ZDE4YTFkODhjZDUzYjNmNGQ4Yi90YWJsZXJhbmdlOjdhZTZmNzMzYmFhOTRkMThhMWQ4OGNkNTNiM2Y0ZDhiXzE5LTUtMS0xLTc3OTA4_d7889c19-f174-4051-8894-2b22a7040e2d"
      unitRef="usdPerShare">0.46</us-gaap:EarningsPerShareDiluted>
    <us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90ZXh0cmVnaW9uOjEwMmJmZGU0ODcyNzRlOTM5MDkyY2I5NTg5NTY5ZjI4XzEwMDg_e1c85982-8778-4724-b3da-2a48bd17edc1">&lt;div style="margin-top:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following weighted-average outstanding shares of common stock equivalents were excluded from the computation of diluted net income per share attributable to common stockholders for the periods presented because including them would have been anti-dilutive:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.293%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.933%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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;div style="padding-right:2.25pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Options to purchase common stock&lt;/span&gt;&lt;/div&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,016,449&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;671,244&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;846,481&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:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:120%"&gt;Unvested restricted stock units&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,164,817&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:120%"&gt;ESPP&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;72,522&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&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;div style="padding-left:21pt;padding-right:2.25pt;text-indent:-9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total common stock equivalents excluded from net income per share attributable to common stockholders &#x2013; diluted&lt;/span&gt;&lt;/div&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,253,788&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;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;671,244&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;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;846,481&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="if5b340c70dc6434291606ac6e28da52b_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo0MWMzNWE3YTMzMzY0MDNjYWU0YTg1ZDc3ZTYyNDkxOC90YWJsZXJhbmdlOjQxYzM1YTdhMzMzNjQwM2NhZTRhODVkNzdlNjI0OTE4XzItMS0xLTEtNzc5MDg_b2b8c53a-01af-4230-9bf1-3a553887f309"
      unitRef="shares">1016449</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i96c40611e43142c694360903b40d9f87_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo0MWMzNWE3YTMzMzY0MDNjYWU0YTg1ZDc3ZTYyNDkxOC90YWJsZXJhbmdlOjQxYzM1YTdhMzMzNjQwM2NhZTRhODVkNzdlNjI0OTE4XzItMy0xLTEtNzc5MDg_a9597bd6-3e2e-45f5-96d2-0cbd126d2390"
      unitRef="shares">671244</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i9d81ac8705f34af48dc4208542446337_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo0MWMzNWE3YTMzMzY0MDNjYWU0YTg1ZDc3ZTYyNDkxOC90YWJsZXJhbmdlOjQxYzM1YTdhMzMzNjQwM2NhZTRhODVkNzdlNjI0OTE4XzItNS0xLTEtNzc5MDg_15415da6-61fe-4759-9278-0945da980fde"
      unitRef="shares">846481</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i680ea9f9ffbe4dfeb718fe928a45f68d_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo0MWMzNWE3YTMzMzY0MDNjYWU0YTg1ZDc3ZTYyNDkxOC90YWJsZXJhbmdlOjQxYzM1YTdhMzMzNjQwM2NhZTRhODVkNzdlNjI0OTE4XzMtMS0xLTEtODY5Njg_6f42788d-4c26-4934-bb6f-bc982168df44"
      unitRef="shares">1164817</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i178fdfe174e942e6bbd7a9e84515968b_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo0MWMzNWE3YTMzMzY0MDNjYWU0YTg1ZDc3ZTYyNDkxOC90YWJsZXJhbmdlOjQxYzM1YTdhMzMzNjQwM2NhZTRhODVkNzdlNjI0OTE4XzMtMy0xLTEtODY5Njg_ec05f0d5-ab95-403b-8ef7-26f17ad88755"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="iff764f3e2d5f4f9fa347b83062bf7530_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo0MWMzNWE3YTMzMzY0MDNjYWU0YTg1ZDc3ZTYyNDkxOC90YWJsZXJhbmdlOjQxYzM1YTdhMzMzNjQwM2NhZTRhODVkNzdlNjI0OTE4XzMtNS0xLTEtODY5Njk_dd4eb8e6-4d09-4761-b92c-db891466e3e3"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ifaf6da1190324dc4b8305cf36ac0f34b_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo0MWMzNWE3YTMzMzY0MDNjYWU0YTg1ZDc3ZTYyNDkxOC90YWJsZXJhbmdlOjQxYzM1YTdhMzMzNjQwM2NhZTRhODVkNzdlNjI0OTE4XzQtMS0xLTEtODY5Njg_521fdb24-59e2-483b-aead-e81bdb0615e1"
      unitRef="shares">72522</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i1804433165a24b7495e098691315a81b_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo0MWMzNWE3YTMzMzY0MDNjYWU0YTg1ZDc3ZTYyNDkxOC90YWJsZXJhbmdlOjQxYzM1YTdhMzMzNjQwM2NhZTRhODVkNzdlNjI0OTE4XzQtMy0xLTEtODY5Njg_d6834bf0-8448-4c28-ad2b-dcebaa1d42ed"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i9330bddf69c541a8940ad3c7529fab00_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo0MWMzNWE3YTMzMzY0MDNjYWU0YTg1ZDc3ZTYyNDkxOC90YWJsZXJhbmdlOjQxYzM1YTdhMzMzNjQwM2NhZTRhODVkNzdlNjI0OTE4XzQtNS0xLTEtODY5Njk_b1868293-360c-4a4a-a2e3-d4d8fb20d0d1"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo0MWMzNWE3YTMzMzY0MDNjYWU0YTg1ZDc3ZTYyNDkxOC90YWJsZXJhbmdlOjQxYzM1YTdhMzMzNjQwM2NhZTRhODVkNzdlNjI0OTE4XzQtMS0xLTEtNzc5MDg_a903072b-42a6-4358-a9e5-792ca6305fff"
      unitRef="shares">2253788</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo0MWMzNWE3YTMzMzY0MDNjYWU0YTg1ZDc3ZTYyNDkxOC90YWJsZXJhbmdlOjQxYzM1YTdhMzMzNjQwM2NhZTRhODVkNzdlNjI0OTE4XzQtMy0xLTEtNzc5MDg_9c6d4ba5-e95c-448d-9cab-ec0e3039913f"
      unitRef="shares">671244</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzMvZnJhZzoxMDJiZmRlNDg3Mjc0ZTkzOTA5MmNiOTU4OTU2OWYyOC90YWJsZTo0MWMzNWE3YTMzMzY0MDNjYWU0YTg1ZDc3ZTYyNDkxOC90YWJsZXJhbmdlOjQxYzM1YTdhMzMzNjQwM2NhZTRhODVkNzdlNjI0OTE4XzQtNS0xLTEtNzc5MDg_068a399a-ce99-4cb4-b664-f5e1dbbe836c"
      unitRef="shares">846481</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90ZXh0cmVnaW9uOmJhZmFkM2RkZDY0MzQ1Mzk4ZDFmMGIxOTRiZmMwYzAzXzQ2ODY_736ae37f-c518-43e5-b047-d89506b06bc1">Income Taxes &lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The domestic and foreign components of income before provision for income taxes were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Domestic&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;32,945&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;61,822&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,169&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,522&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,981&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,411&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Income before provision for income taxes&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;37,467&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;64,803&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;31,580&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The provision for income taxes consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Current provisions for income taxes:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;11,379&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,437&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;360&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;714&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;240&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,349&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;295&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,434&#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 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total current tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;14,788&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,446&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,034&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred tax expense:&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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(5,491)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,845&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(769)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;251&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,170&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;234&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(11)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(82)&lt;/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 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total deferred tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(6,026)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,753&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,933&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total provision for income taxes&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,762&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,199&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,967&#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;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents a reconciliation of the U.S. federal statutory income tax rate to the Company&#x2019;s effective tax rate for the periods presented:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Federal statutory income tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21.00&#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;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;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21.00&#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;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;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21.00&#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;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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;State after-tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3.45&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4.47&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.67&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(10.38)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(6.79)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Research credit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(4.51)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1.37)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2.04)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Transfer pricing reserve&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.76&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1.26)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Foreign rate differential&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(0.02)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.61&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Foreign derived intangible income&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2.13)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(0.48)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(3.26)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Section 162(m) limitation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(0.38)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Effective tax rate&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;23.43&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12.64&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;15.73&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred income taxes reflect the net tax effects of temporary differences between carrying amounts of assets and liabilities for financial reporting purposes and the amounts used for income tax purposes. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Significant components of the Company&#x2019;s deferred tax assets and liabilities were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:2pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net operating loss carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;263&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&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;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&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;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;124&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accruals and allowances&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,067&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,104&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;614&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Tax credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,954&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,396&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,631&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,171&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,045&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Unrealized gain on equity investment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;124&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangibles assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,010&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,106&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease obligation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,074&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,226&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,222&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;808&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,101&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total deferred tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;15,518&#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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,771&#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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,621&#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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,954)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,396)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,372)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total deferred tax assets, net of valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;13,564&#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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;11,375&#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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,249&#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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, equipment, and software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(3,905)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(8,316)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(4,995)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(843)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(749)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(653)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Prepaid expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,188)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,365)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(400)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Right-of-use asset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(5,158)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(5,201)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Acquired intangibles&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,996)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Unrealized loss on equity investment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,296)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total deferred tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(13,090)&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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(16,927)&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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(6,048)&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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net deferred income tax asset (liabilities)&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 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;474&#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:top"/&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:top"&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;/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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(5,552)&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:top"/&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:top"&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;/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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(799)&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:top"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company had gross federal and state net operating loss carryforwards of approximately $1.1&#160;million and $1.3&#160;million, respectively, as of December&#160;31, 2022. The federal net operating loss never expires and the state net operating losses will expire at various dates beginning in 2035 if not utilized and may be subject to annual limitations of usage, as promulgated by the Internal Revenue Service, due to ownership changes that may have occurred in the past. As of December&#160;31, 2022, the Company had state research and development credit carryforwards of $4.1&#160;million. The state credits can be carried forward indefinitely.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Pursuant to Section 382 of the Internal Revenue Code of 1986, as amended (&#x201c;Code&#x201d;), the Company&#x2019;s ability to utilize net operating loss carryforwards or other tax attributes, such as research tax credits, in any taxable year may be limited if the Company experiences an &#x201c;ownership change.&#x201d; A Section 382 &#x201c;ownership change&#x201d; generally occurs if one or more stockholders or groups of stockholders who own at least 5% of the Company&#x2019;s stock increase their ownership by more than 50 percentage points over their lowest ownership percentage within a rolling three year period. Similar rules may apply under state tax laws. Net operating loss carryforwards and other tax attributes generated are currently not subject to limitation by Section 382, but subsequent changes in the Company&#x2019;s stock ownership as well as other changes that may be outside of the Company&#x2019;s control, could result in additional ownership changes under Section 382 of the Code.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Deferred Tax Valuation Allowance&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A valuation allowance is provided for deferred tax assets where the recoverability of the assets is uncertain. The determination to provide a valuation allowance is dependent upon the assessment of whether it is more likely than not that sufficient future taxable income will be generated to utilize the deferred tax assets. Management has determined that there is sufficient positive evidence that a valuation allowance against deferred tax assets is not required as of December&#160;31, 2022 and 2021, except for state research credit carryforwards, starting in 2020, for which realization is not deemed more likely than not given the Company expects to generate more credits in future than can be utilized against projected taxable income.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company has not historically provided for U.S. deferred taxes on the cumulative earnings of non-U.S. affiliates that have been reinvested indefinitely. However, under the 2017 Tax Act the Company was deemed to have repatriated the cumulative earnings of its non-U.S. affiliates and the U.S. liability associated with those cumulative earnings has been reflected in the current federal tax provision. In addition, the Tax Act has enacted tax provisions that will subject all foreign earnings to U.S. taxation. The Company will continue to maintain its policy of indefinite reinvestment to the extent that the repatriation of foreign earnings are restricted by local laws, accounting rules, substantial incremental costs associated with repatriating the foreign earnings, or other business requirements.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:700;line-height:120%"&gt;Uncertain Tax Positions&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The activity related to the unrecognized income tax benefits is as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Gross unrecognized income tax benefits &#x2014; beginning balance&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&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;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,364&#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:top"/&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:top"&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;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,208&#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:top"/&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:top"&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;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,369&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Increases related to tax positions taken during the current year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,788&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;649&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;951&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Decreases related to tax positions taken during current year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Increases related to tax positions taken during the prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;386&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Decreases related to tax positions taken during the prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(235)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,493)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(112)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Gross unrecognized income tax benefits &#x2014; ending balance&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 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,303&#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:top"/&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:top"&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;/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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,364&#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:top"/&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:top"&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;/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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,208&#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:top"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company recognizes interest and penalties, if any, related to uncertain tax positions in its income tax provision. As of December&#160;31, 2022 and 2021, the Company had approximately $0.2&#160;million and $0.1&#160;million, respectively, of accrued interest related to uncertain tax positions.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;All of the $4.3&#160;million of unrecognized income tax benefits would, if recognized, impact the effective tax rate in the period in which each of the benefits is recognized. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The Company files U.S., state and foreign income tax returns with varying statutes of limitations. The federal, state, and foreign returns statute of limitations remains open for tax years from 2013 and thereafter. There are currently no income tax audits involving any U.S. states or foreign tax jurisdictions.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90ZXh0cmVnaW9uOmJhZmFkM2RkZDY0MzQ1Mzk4ZDFmMGIxOTRiZmMwYzAzXzQ2ODI_9f9f3066-74a2-4763-a15d-5a5d810f724e">&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The domestic and foreign components of income before provision for income taxes were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Domestic&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;32,945&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;61,822&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;28,169&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,522&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,981&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,411&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Income before provision for income taxes&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;37,467&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;64,803&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;31,580&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfIncomeBeforeIncomeTaxDomesticAndForeignTableTextBlock>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpkZTcxMzExMTg2NzE0MGZlOTg5OTYyNWFmZDUwMWM1Mi90YWJsZXJhbmdlOmRlNzEzMTExODY3MTQwZmU5ODk5NjI1YWZkNTAxYzUyXzItMS0xLTEtNzc5MDg_6ff74bcb-2c39-4a25-b20b-9d617cf724fb"
      unitRef="usd">32945000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpkZTcxMzExMTg2NzE0MGZlOTg5OTYyNWFmZDUwMWM1Mi90YWJsZXJhbmdlOmRlNzEzMTExODY3MTQwZmU5ODk5NjI1YWZkNTAxYzUyXzItMy0xLTEtNzc5MDg_ece8c5d7-586a-40ab-aa5d-7f61eeacb758"
      unitRef="usd">61822000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpkZTcxMzExMTg2NzE0MGZlOTg5OTYyNWFmZDUwMWM1Mi90YWJsZXJhbmdlOmRlNzEzMTExODY3MTQwZmU5ODk5NjI1YWZkNTAxYzUyXzItNS0xLTEtNzc5MDg_739d5f6e-2ff0-4f27-b9f0-8f1600753222"
      unitRef="usd">28169000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesDomestic>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpkZTcxMzExMTg2NzE0MGZlOTg5OTYyNWFmZDUwMWM1Mi90YWJsZXJhbmdlOmRlNzEzMTExODY3MTQwZmU5ODk5NjI1YWZkNTAxYzUyXzMtMS0xLTEtNzc5MDg_ea5fdbba-d38d-4e9a-8eb3-69b5c045fd9a"
      unitRef="usd">4522000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpkZTcxMzExMTg2NzE0MGZlOTg5OTYyNWFmZDUwMWM1Mi90YWJsZXJhbmdlOmRlNzEzMTExODY3MTQwZmU5ODk5NjI1YWZkNTAxYzUyXzMtMy0xLTEtNzc5MDg_51497f6e-98a8-4222-91ad-863fccf61a56"
      unitRef="usd">2981000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpkZTcxMzExMTg2NzE0MGZlOTg5OTYyNWFmZDUwMWM1Mi90YWJsZXJhbmdlOmRlNzEzMTExODY3MTQwZmU5ODk5NjI1YWZkNTAxYzUyXzMtNS0xLTEtNzc5MDg_04fd5d82-3401-45a7-a01b-6c8044004a3b"
      unitRef="usd">3411000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesForeign>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpkZTcxMzExMTg2NzE0MGZlOTg5OTYyNWFmZDUwMWM1Mi90YWJsZXJhbmdlOmRlNzEzMTExODY3MTQwZmU5ODk5NjI1YWZkNTAxYzUyXzQtMS0xLTEtNzc5MDg_66a380d7-42b0-497f-ae5c-f6fc32a5e9be"
      unitRef="usd">37467000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpkZTcxMzExMTg2NzE0MGZlOTg5OTYyNWFmZDUwMWM1Mi90YWJsZXJhbmdlOmRlNzEzMTExODY3MTQwZmU5ODk5NjI1YWZkNTAxYzUyXzQtMy0xLTEtNzc5MDg_82ecf948-738b-4547-a3a7-7b5dc976fba1"
      unitRef="usd">64803000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpkZTcxMzExMTg2NzE0MGZlOTg5OTYyNWFmZDUwMWM1Mi90YWJsZXJhbmdlOmRlNzEzMTExODY3MTQwZmU5ODk5NjI1YWZkNTAxYzUyXzQtNS0xLTEtNzc5MDg_dd007062-1e16-4fd0-b774-86741490174a"
      unitRef="usd">31580000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90ZXh0cmVnaW9uOmJhZmFkM2RkZDY0MzQ1Mzk4ZDFmMGIxOTRiZmMwYzAzXzQ2ODM_f7d964e2-1ef9-4f96-9c00-e66ccd52e69a">&lt;div style="margin-top:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The provision for income taxes consisted of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Current provisions for income taxes:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;11,379&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,437&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;360&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;714&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;240&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,349&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;295&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,434&#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 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total current tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;14,788&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,446&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,034&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr style="height:15pt"&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred tax expense:&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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Federal&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(5,491)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,513&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,845&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;State&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(769)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;251&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,170&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Foreign&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;234&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(11)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(82)&lt;/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 25pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total deferred tax expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(6,026)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,753&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,933&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total provision for income taxes&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,762&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,199&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,967&#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:ScheduleOfComponentsOfIncomeTaxExpenseBenefitTableTextBlock>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzMtMS0xLTEtNzc5MDg_b892057a-1997-4a82-a97a-7e76e37967f2"
      unitRef="usd">11379000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzMtMy0xLTEtNzc5MDg_cd44e0fa-1516-48c5-b804-5d431b670504"
      unitRef="usd">2437000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentFederalTaxExpenseBenefit
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzMtNS0xLTEtNzc5MDg_d58c066e-ce3e-4f66-8477-438ce5e0e8ef"
      unitRef="usd">360000</us-gaap:CurrentFederalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzQtMS0xLTEtNzc5MDg_e10620d0-a942-4775-b09c-a64423781984"
      unitRef="usd">2060000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzQtMy0xLTEtNzc5MDg_0a57196b-6af2-4cdf-b494-ed4fec2970f0"
      unitRef="usd">714000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentStateAndLocalTaxExpenseBenefit
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzQtNS0xLTEtNzc5MDg_5055af2a-644d-40f4-8a70-b4d7f8977980"
      unitRef="usd">240000</us-gaap:CurrentStateAndLocalTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzUtMS0xLTEtNzc5MDg_b4753b2a-c432-4609-bc37-f60b577a83a7"
      unitRef="usd">1349000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzUtMy0xLTEtNzc5MDg_947d9ca1-5300-4c84-93a5-5759c12a2683"
      unitRef="usd">295000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentForeignTaxExpenseBenefit
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzUtNS0xLTEtNzc5MDg_8ecd912f-9740-42ba-a23c-ada3525a0ea2"
      unitRef="usd">1434000</us-gaap:CurrentForeignTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzYtMS0xLTEtNzc5MDg_90a4438b-2bf0-4a25-8e46-f5c0629d21cf"
      unitRef="usd">14788000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzYtMy0xLTEtNzc5MDg_fa98fbf7-1238-4f59-8387-0a4806011f58"
      unitRef="usd">3446000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:CurrentIncomeTaxExpenseBenefit
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzYtNS0xLTEtNzc5MDg_cf432cae-ea42-47bf-9510-958fd60e5afd"
      unitRef="usd">2034000</us-gaap:CurrentIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzktMS0xLTEtNzc5MDg_6801bd0c-d5e3-49ea-b134-be2964ade54d"
      unitRef="usd">-5491000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzktMy0xLTEtNzc5MDg_a7c412b6-d3bc-4402-b289-5ab7d6d80852"
      unitRef="usd">4513000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredFederalIncomeTaxExpenseBenefit
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzktNS0xLTEtNzc5MDg_56eb226e-21d8-4dc7-b325-fe7238757578"
      unitRef="usd">1845000</us-gaap:DeferredFederalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzEwLTEtMS0xLTc3OTA4_3c7c03e6-16e1-4d9e-9e85-62613120d8c0"
      unitRef="usd">-769000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzEwLTMtMS0xLTc3OTA4_78b90f4e-909f-4cb2-9018-8f6265e85232"
      unitRef="usd">251000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzEwLTUtMS0xLTc3OTA4_2cfa4a1c-2ad1-4fc0-856a-40bf409762e0"
      unitRef="usd">1170000</us-gaap:DeferredStateAndLocalIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzExLTEtMS0xLTc3OTA4_3b0dbf3f-0ae1-4a01-898a-a3127428b353"
      unitRef="usd">234000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzExLTMtMS0xLTc3OTA4_3320383a-4446-4489-8a33-0eeb324aa544"
      unitRef="usd">-11000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <us-gaap:DeferredForeignIncomeTaxExpenseBenefit
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzExLTUtMS0xLTc3OTA4_09ed6ace-310e-4be6-adf6-407c08f1b3da"
      unitRef="usd">-82000</us-gaap:DeferredForeignIncomeTaxExpenseBenefit>
    <pubm:DeferredIncomeTaxExpenseBenefitExcludingNetDeferredTaxLiabilityFromAcquisition
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzEyLTEtMS0xLTc3OTA4_2eb477b0-9e36-4b60-b778-5c2deaf02943"
      unitRef="usd">-6026000</pubm:DeferredIncomeTaxExpenseBenefitExcludingNetDeferredTaxLiabilityFromAcquisition>
    <pubm:DeferredIncomeTaxExpenseBenefitExcludingNetDeferredTaxLiabilityFromAcquisition
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzEyLTMtMS0xLTc3OTA4_9ce4136e-5ee7-4f7e-b872-9ea4405f41ff"
      unitRef="usd">4753000</pubm:DeferredIncomeTaxExpenseBenefitExcludingNetDeferredTaxLiabilityFromAcquisition>
    <pubm:DeferredIncomeTaxExpenseBenefitExcludingNetDeferredTaxLiabilityFromAcquisition
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzEyLTUtMS0xLTc3OTA4_6eeaeb1a-b1e8-4cb7-ade6-56a371792bd4"
      unitRef="usd">2933000</pubm:DeferredIncomeTaxExpenseBenefitExcludingNetDeferredTaxLiabilityFromAcquisition>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzEzLTEtMS0xLTc3OTA4_2c6cf50e-9c97-40ec-b450-55b0abdc45f3"
      unitRef="usd">8762000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzEzLTMtMS0xLTc3OTA4_e2c387ff-860e-4827-a57e-909aad1207a0"
      unitRef="usd">8199000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1ZjkyMzFiYTlhNTA0YTcwOWQwZWM1ZWYzZDE4OGI4Ny90YWJsZXJhbmdlOjVmOTIzMWJhOWE1MDRhNzA5ZDBlYzVlZjNkMTg4Yjg3XzEzLTUtMS0xLTc3OTA4_eefc4574-1b4a-49c8-8326-5547d913cc1f"
      unitRef="usd">4967000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90ZXh0cmVnaW9uOmJhZmFkM2RkZDY0MzQ1Mzk4ZDFmMGIxOTRiZmMwYzAzXzQ2ODQ_2515e7a6-0ebc-4c7f-af35-12a783bdc0a3">&lt;div style="margin-top:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents a reconciliation of the U.S. federal statutory income tax rate to the Company&#x2019;s effective tax rate for the periods presented:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Federal statutory income tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21.00&#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;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;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21.00&#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;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;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21.00&#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;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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;State after-tax rate&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3.45&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4.47&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock options&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.67&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(10.38)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(6.79)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Research credit&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(4.51)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1.37)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2.04)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Transfer pricing reserve&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.76&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1.26)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1.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;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Foreign rate differential&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(0.02)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.73&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.61&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Foreign derived intangible income&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(2.13)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(0.48)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(3.26)&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Section 162(m) limitation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.59&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2.49&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(0.38)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.42&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Effective tax rate&lt;/span&gt;&lt;/td&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;23.43&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12.64&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;15.73&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;%&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEffectiveIncomeTaxRateReconciliationTableTextBlock>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzItMS0xLTEtNzc5MDg_5bdb90b1-04b5-4804-8482-f134a7809160"
      unitRef="number">0.2100</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzItMy0xLTEtNzc5MDg_23604ff8-f305-4e3b-b7b3-001a5d6d7658"
      unitRef="number">0.2100</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzItNS0xLTEtNzc5MDg_586bf0cb-3044-4c46-ab82-23fa3d61585e"
      unitRef="number">0.2100</us-gaap:EffectiveIncomeTaxRateReconciliationAtFederalStatutoryIncomeTaxRate>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzMtMS0xLTEtNzc5MDg_3f99e31b-a987-4ce4-9bbe-a550656986eb"
      unitRef="number">0.0345</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzMtMy0xLTEtNzc5MDg_46942a27-f507-4d11-8e43-4bfabf0622b8"
      unitRef="number">0.0149</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzMtNS0xLTEtNzc5MDg_6214bef3-b3d4-4479-8d6f-7d57120af98c"
      unitRef="number">0.0447</us-gaap:EffectiveIncomeTaxRateReconciliationStateAndLocalIncomeTaxes>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzQtMS0xLTEtNzc5MDg_3b8cec5e-8b20-4e88-b7c9-226a5338fecb"
      unitRef="number">0.0267</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzQtMy0xLTEtNzc5MDg_1893790d-68a4-445b-974e-5edac88a2d70"
      unitRef="number">-0.1038</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzQtNS0xLTEtNzc5MDg_b8a38292-b4cc-48e1-aaff-6830974a06cb"
      unitRef="number">-0.0679</us-gaap:EffectiveIncomeTaxRateReconciliationNondeductibleExpenseShareBasedCompensationCost>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzUtMS0xLTEtNzc5MDg_b476ce4b-52eb-4e1b-8dfb-436987193e16"
      unitRef="number">0.0451</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzUtMy0xLTEtNzc5MDg_227456e4-40a0-4570-aaf2-d64e8464f5a5"
      unitRef="number">0.0137</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzUtNS0xLTEtNzc5MDg_75d55383-b3b8-4387-a531-c4049fbbc0a5"
      unitRef="number">0.0204</us-gaap:EffectiveIncomeTaxRateReconciliationTaxCreditsResearch>
    <pubm:EffectiveIncomeTaxRateReconciliationTransferPricingReservePercent
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzYtMS0xLTEtNzc5MDg_e80212e4-7122-4f3e-9ed7-b65e94cd954a"
      unitRef="number">0.0076</pubm:EffectiveIncomeTaxRateReconciliationTransferPricingReservePercent>
    <pubm:EffectiveIncomeTaxRateReconciliationTransferPricingReservePercent
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzYtMy0xLTEtNzc5MDg_0b59f7de-b67f-4e77-adc0-f19e7962b19a"
      unitRef="number">-0.0126</pubm:EffectiveIncomeTaxRateReconciliationTransferPricingReservePercent>
    <pubm:EffectiveIncomeTaxRateReconciliationTransferPricingReservePercent
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzYtNS0xLTEtNzc5MDg_3999f9d1-3ba3-4b5f-8161-057506d7c0eb"
      unitRef="number">0.0132</pubm:EffectiveIncomeTaxRateReconciliationTransferPricingReservePercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzctMS0xLTEtNzc5MDg_687f0e4c-75b5-4e17-a877-61189986b031"
      unitRef="number">-0.0002</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzctMy0xLTEtNzc5MDg_777a4278-6051-4cc0-acdf-5631180a4f95"
      unitRef="number">0.0073</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzctNS0xLTEtNzc5MDg_195219a3-0049-45e2-afa4-143320011dca"
      unitRef="number">0.0061</us-gaap:EffectiveIncomeTaxRateReconciliationForeignIncomeTaxRateDifferential>
    <us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsExtraterritorialIncomeExclusion
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzgtMS0xLTEtNzc5MDg_bfd9c26d-1c46-4326-9363-5759b568e9c3"
      unitRef="number">0.0213</us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsExtraterritorialIncomeExclusion>
    <us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsExtraterritorialIncomeExclusion
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzgtMy0xLTEtNzc5MDg_94257dbe-4d0b-4c82-984e-d80e99fdd824"
      unitRef="number">0.0048</us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsExtraterritorialIncomeExclusion>
    <us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsExtraterritorialIncomeExclusion
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzgtNS0xLTEtNzc5MDg_79d65e0a-3a31-46be-ab76-435296ab54bc"
      unitRef="number">0.0326</us-gaap:EffectiveIncomeTaxRateReconciliationDeductionsExtraterritorialIncomeExclusion>
    <pubm:EffectiveIncomeTaxRateReconciliationDeductionCoverEmployeesPercent
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzktMS0xLTEtNzc5MDg_fbdbd42d-bfe4-4c5b-a476-8c4fe5997d77"
      unitRef="number">0.0259</pubm:EffectiveIncomeTaxRateReconciliationDeductionCoverEmployeesPercent>
    <pubm:EffectiveIncomeTaxRateReconciliationDeductionCoverEmployeesPercent
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzktMy0xLTEtNzc5MDg_224ebeb7-e7e0-44e6-85ab-bc3d8da7e8f1"
      unitRef="number">0.0249</pubm:EffectiveIncomeTaxRateReconciliationDeductionCoverEmployeesPercent>
    <pubm:EffectiveIncomeTaxRateReconciliationDeductionCoverEmployeesPercent
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzktNS0xLTEtNzc5MDg_b10f6e5c-ea44-4055-a530-412424c0e60c"
      unitRef="number">0</pubm:EffectiveIncomeTaxRateReconciliationDeductionCoverEmployeesPercent>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzEwLTEtMS0xLTc3OTA4_a913f3b0-e0cc-4d9b-9585-77531637439c"
      unitRef="number">-0.0038</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzEwLTMtMS0xLTc3OTA4_7c93cb70-f719-46da-a429-532fd6e4388c"
      unitRef="number">0.0042</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzEwLTUtMS0xLTc3OTA4_80d1263e-08b1-4361-a362-1380f49ffe1a"
      unitRef="number">0.0042</us-gaap:EffectiveIncomeTaxRateReconciliationOtherAdjustments>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzExLTEtMS0xLTc3OTA4_d3ae1078-be0b-454f-bd91-70021fea843c"
      unitRef="number">0.2343</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzExLTMtMS0xLTc3OTA4_2a084d51-6c10-4709-9a14-7a16fdee57ac"
      unitRef="number">0.1264</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpmODc4YjNlYzMwNGU0ODNkOTdlNzhmMTk5NTQ5YTY1OC90YWJsZXJhbmdlOmY4NzhiM2VjMzA0ZTQ4M2Q5N2U3OGYxOTk1NDlhNjU4XzExLTUtMS0xLTc3OTA4_3b94c9c9-f222-4e93-881b-01d0257248a9"
      unitRef="number">0.1573</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90ZXh0cmVnaW9uOmJhZmFkM2RkZDY0MzQ1Mzk4ZDFmMGIxOTRiZmMwYzAzXzQ2ODU_ad0713a0-69e6-408f-bb49-4d87cb00a398">&lt;div style="margin-top:6pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Significant components of the Company&#x2019;s deferred tax assets and liabilities were as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:2pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred tax assets:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net operating loss carryforwards&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;263&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&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;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;56&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&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;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;124&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Accruals and allowances&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,067&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,104&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;614&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Tax credits&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,954&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,396&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,631&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Stock-based compensation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,171&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,045&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Unrealized gain on equity investment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;124&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Intangibles assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;907&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,010&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,106&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Lease obligation&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,074&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,226&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Other&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,222&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;808&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,101&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total deferred tax assets&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;15,518&#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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;12,771&#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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;6,621&#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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,954)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,396)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,372)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total deferred tax assets, net of valuation allowance&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;13,564&#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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;11,375&#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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,249&#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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Deferred tax liabilities:&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Property, equipment, and software&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(3,905)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(8,316)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(4,995)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Goodwill&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(843)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(749)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(653)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Prepaid expense&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,188)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,365)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(400)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Right-of-use asset&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(5,158)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(5,201)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Acquired intangibles&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,996)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Unrealized loss on equity investment&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,296)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 25pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total deferred tax liabilities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(13,090)&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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(16,927)&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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(6,048)&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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Net deferred income tax asset (liabilities)&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 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;474&#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:top"/&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:top"&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;/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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(5,552)&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:top"/&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:top"&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;/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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(799)&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:top"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfDeferredTaxAssetsAndLiabilitiesTableTextBlock>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzMtMS0xLTEtNzc5MDg_a2058654-c7c0-4a51-827a-c7b998148263"
      unitRef="usd">263000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzMtMy0xLTEtNzc5MDg_0e3ca81f-bd65-4058-bd08-5f1c54cf3820"
      unitRef="usd">56000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsOperatingLossCarryforwards
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzMtNS0xLTEtNzc5MDg_c04a05d6-dfb9-470b-9efa-b8bcc984cac6"
      unitRef="usd">124000</us-gaap:DeferredTaxAssetsOperatingLossCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzQtMS0xLTEtNzc5MDg_29785b2e-6f03-4211-a1e1-a2ee0372b9e9"
      unitRef="usd">1067000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzQtMy0xLTEtNzc5MDg_b0790cd2-8c7e-44d7-8b9e-88b9e896661e"
      unitRef="usd">1104000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzQtNS0xLTEtNzc5MDg_146568c0-0c16-4034-87a2-bf94bf3e32ed"
      unitRef="usd">614000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseReservesAndAccruals>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzUtMS0xLTEtNzc5MDg_7b3f0ca3-e8b0-4bd2-b8e1-993c03a9114d"
      unitRef="usd">1954000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzUtMy0xLTEtNzc5MDg_4bb9d499-f5b1-40f5-b6db-95e7d249af3b"
      unitRef="usd">1396000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxCreditCarryforwards
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzUtNS0xLTEtNzc5MDg_4f931b77-fc3b-4785-8107-f602ab898cb4"
      unitRef="usd">1631000</us-gaap:DeferredTaxAssetsTaxCreditCarryforwards>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzYtMS0xLTEtNzc5MDg_88329ea6-96a1-442c-9ed8-ff7715e13aff"
      unitRef="usd">4907000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzYtMy0xLTEtNzc5MDg_5b605e5e-b8e5-45c5-af2a-22e980f422d6"
      unitRef="usd">3171000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzYtNS0xLTEtNzc5MDg_9d97c064-7e21-4975-aaec-7edaf5ae44a7"
      unitRef="usd">2045000</us-gaap:DeferredTaxAssetsTaxDeferredExpenseCompensationAndBenefitsShareBasedCompensationCost>
    <pubm:DeferredTaxAssetsUnrealizedGainsOnEquityInvestment
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzctMS0xLTEtOTM2MzQ_21d8c50c-0694-4352-9d62-39b87063bc6d"
      unitRef="usd">124000</pubm:DeferredTaxAssetsUnrealizedGainsOnEquityInvestment>
    <pubm:DeferredTaxAssetsUnrealizedGainsOnEquityInvestment
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzctMy0xLTEtOTM2MzQ_9c0bbb02-3d44-431f-a7af-f15c8dc20186"
      unitRef="usd">0</pubm:DeferredTaxAssetsUnrealizedGainsOnEquityInvestment>
    <pubm:DeferredTaxAssetsUnrealizedGainsOnEquityInvestment
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzctNS0xLTEtOTM2MzQ_d5bdd219-ff51-49e5-8556-acf13f398dd2"
      unitRef="usd">0</pubm:DeferredTaxAssetsUnrealizedGainsOnEquityInvestment>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzctMS0xLTEtNzc5MDg_e99276d2-2014-429d-a40b-719b39beeb40"
      unitRef="usd">907000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzctMy0xLTEtNzc5MDg_d8cc5418-9354-4292-919b-cb25c27484e1"
      unitRef="usd">1010000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzctNS0xLTEtNzc5MDg_e7b0f185-8871-4947-aea4-3a2d60f8446b"
      unitRef="usd">1106000</us-gaap:DeferredTaxAssetsGoodwillAndIntangibleAssets>
    <pubm:DeferredTaxAssetsLeaseObligation
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzgtMS0xLTEtNzc5MDg_42623c0b-687a-4897-a517-e79c9a0e7798"
      unitRef="usd">5074000</pubm:DeferredTaxAssetsLeaseObligation>
    <pubm:DeferredTaxAssetsLeaseObligation
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzgtMy0xLTEtNzc5MDg_669d0a3f-f645-43ac-be3a-30ce227eb5ea"
      unitRef="usd">5226000</pubm:DeferredTaxAssetsLeaseObligation>
    <pubm:DeferredTaxAssetsLeaseObligation
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzgtNS0xLTEtNzc5MDg_d49abcda-9784-4f96-ad66-da830d3127ed"
      unitRef="usd">0</pubm:DeferredTaxAssetsLeaseObligation>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzktMS0xLTEtNzc5MDg_c5ea939d-b656-492f-b495-2842696e63ed"
      unitRef="usd">1222000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzktMy0xLTEtNzc5MDg_dd280e7d-0fbb-48ba-a1a8-10188796f7e4"
      unitRef="usd">808000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsOther
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzktNS0xLTEtNzc5MDg_f1e90f88-247a-4525-908d-b67f802f37c3"
      unitRef="usd">1101000</us-gaap:DeferredTaxAssetsOther>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzExLTEtMS0xLTk2MDk3_13c7953e-47b9-4648-8f58-f894d0aeff93"
      unitRef="usd">15518000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzExLTMtMS0xLTk2MzM3_e9bcd7bb-70b2-4a87-bfea-34bfdc9d5cf6"
      unitRef="usd">12771000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsGross
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzExLTUtMS0xLTk2MzQw_bf7e019f-b400-4063-8562-c8f71392a1ca"
      unitRef="usd">6621000</us-gaap:DeferredTaxAssetsGross>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzExLTEtMS0xLTc3OTA4_ac9caaab-0b75-4bcc-bc7a-99f43651d930"
      unitRef="usd">1954000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzExLTMtMS0xLTc3OTA4_76c44481-06f5-487f-b4e1-84254dabca43"
      unitRef="usd">1396000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsValuationAllowance
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzExLTUtMS0xLTc3OTA4_f6dda184-80e6-495e-abce-8585a3b1a039"
      unitRef="usd">1372000</us-gaap:DeferredTaxAssetsValuationAllowance>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzEzLTEtMS0xLTc3OTA4_45e6b1d2-ec51-4e5f-8eb4-505a9a6b88ec"
      unitRef="usd">13564000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzEzLTMtMS0xLTc3OTA4_a6c5e50f-5b70-49d2-bf5c-265fd97b72aa"
      unitRef="usd">11375000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxAssetsNet
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzEzLTUtMS0xLTc3OTA4_de44c626-fe1d-4e6d-9b64-7129283267ce"
      unitRef="usd">5249000</us-gaap:DeferredTaxAssetsNet>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE1LTEtMS0xLTc3OTA4_5683138c-ad43-46a3-8cc9-5ee53c5d5e53"
      unitRef="usd">3905000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE1LTMtMS0xLTc3OTA4_dfbd06bb-50c4-4385-9448-d4b3ffda2e01"
      unitRef="usd">8316000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE1LTUtMS0xLTc3OTA4_46079a2d-1a3e-47a0-8743-e0d2d3bd354c"
      unitRef="usd">4995000</us-gaap:DeferredTaxLiabilitiesPropertyPlantAndEquipment>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE2LTEtMS0xLTc3OTA4_9f1f77c8-1ca5-4784-a80e-a00cf51637ec"
      unitRef="usd">843000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE2LTMtMS0xLTc3OTA4_d7394b8b-97a7-4253-baee-ec177057ea35"
      unitRef="usd">749000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE2LTUtMS0xLTc3OTA4_b7444e06-4016-4e0f-ba6d-0bc004173726"
      unitRef="usd">653000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsGoodwill>
    <us-gaap:DeferredTaxLiabilitiesPrepaidExpenses
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE3LTEtMS0xLTc3OTA4_0efd6ba5-ba12-4cd3-808a-b63a4e260cd1"
      unitRef="usd">1188000</us-gaap:DeferredTaxLiabilitiesPrepaidExpenses>
    <us-gaap:DeferredTaxLiabilitiesPrepaidExpenses
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE3LTMtMS0xLTc3OTA4_284e8754-3052-48bd-8e30-284fa9240eea"
      unitRef="usd">1365000</us-gaap:DeferredTaxLiabilitiesPrepaidExpenses>
    <us-gaap:DeferredTaxLiabilitiesPrepaidExpenses
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE3LTUtMS0xLTc3OTA4_ba6a4fae-6129-4284-a53f-e1cfb3538eda"
      unitRef="usd">400000</us-gaap:DeferredTaxLiabilitiesPrepaidExpenses>
    <pubm:DeferredTaxLiabilitiesRightOfUseAsset
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE4LTEtMS0xLTc3OTA4_7f42433c-f6f4-44f1-80d5-ea32d7690cc8"
      unitRef="usd">5158000</pubm:DeferredTaxLiabilitiesRightOfUseAsset>
    <pubm:DeferredTaxLiabilitiesRightOfUseAsset
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE4LTMtMS0xLTc3OTA4_c44a4b5a-d2f4-40fb-ba62-6425d29749a9"
      unitRef="usd">5201000</pubm:DeferredTaxLiabilitiesRightOfUseAsset>
    <pubm:DeferredTaxLiabilitiesRightOfUseAsset
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE4LTUtMS0xLTc3OTA4_0ed7eea2-ae8c-4a51-b4c6-289c0a710474"
      unitRef="usd">0</pubm:DeferredTaxLiabilitiesRightOfUseAsset>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE4LTEtMS0xLTkzNjQ0_d21a6285-8420-4a56-8e12-e9c0d1ae80da"
      unitRef="usd">1996000</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE4LTMtMS0xLTkzNjQ0_1f5e776f-d0e0-48a4-8b45-27ad88953dae"
      unitRef="usd">0</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE4LTUtMS0xLTkzNjQ0_1dd0a688-f558-44c3-bab4-0f5d5e86cd49"
      unitRef="usd">0</us-gaap:DeferredTaxLiabilitiesGoodwillAndIntangibleAssetsIntangibleAssets>
    <pubm:DeferredTaxLiabilitiesUnrealizedLossesOnEquityInvestment
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE5LTEtMS0xLTc3OTA4_166e9551-df12-4813-ac27-f9a8e5d012c0"
      unitRef="usd">0</pubm:DeferredTaxLiabilitiesUnrealizedLossesOnEquityInvestment>
    <pubm:DeferredTaxLiabilitiesUnrealizedLossesOnEquityInvestment
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE5LTMtMS0xLTc3OTA4_1bb0ee82-9d83-46e6-9360-6bb434931b8f"
      unitRef="usd">1296000</pubm:DeferredTaxLiabilitiesUnrealizedLossesOnEquityInvestment>
    <pubm:DeferredTaxLiabilitiesUnrealizedLossesOnEquityInvestment
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzE5LTUtMS0xLTc3OTA4_4544595d-2788-4a9d-a7ef-0eb0ff718475"
      unitRef="usd">0</pubm:DeferredTaxLiabilitiesUnrealizedLossesOnEquityInvestment>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzIwLTEtMS0xLTc3OTA4_5609c66f-fc55-4302-9870-5fe958237561"
      unitRef="usd">13090000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzIwLTMtMS0xLTc3OTA4_b5754e5e-fd56-4164-b4ef-760c0dd1d4a0"
      unitRef="usd">16927000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredIncomeTaxLiabilities
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzIwLTUtMS0xLTc3OTA4_5071d8ef-f1be-4f69-bad0-4bd37e2ed3b0"
      unitRef="usd">6048000</us-gaap:DeferredIncomeTaxLiabilities>
    <us-gaap:DeferredTaxAssetsLiabilitiesNet
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzIxLTEtMS0xLTc3OTA4_f022fbc8-28c0-401d-a62d-679cdd7fac4b"
      unitRef="usd">474000</us-gaap:DeferredTaxAssetsLiabilitiesNet>
    <us-gaap:DeferredTaxLiabilities
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzIxLTMtMS0xLTc3OTA4_4b21c586-52d5-4116-8500-6e32530854e4"
      unitRef="usd">5552000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:DeferredTaxLiabilities
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTo1NDA1YzE3ZDFhMGY0YTRmODE1M2ZjMTNlMGQ0MTA0Ni90YWJsZXJhbmdlOjU0MDVjMTdkMWEwZjRhNGY4MTUzZmMxM2UwZDQxMDQ2XzIxLTUtMS0xLTc3OTA4_c751bbdc-470c-4a3c-ba19-f6982cf5e329"
      unitRef="usd">799000</us-gaap:DeferredTaxLiabilities>
    <us-gaap:OperatingLossCarryforwards
      contextRef="ic8033bb5d76f4819bd384b49ccfc5e9f_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90ZXh0cmVnaW9uOmJhZmFkM2RkZDY0MzQ1Mzk4ZDFmMGIxOTRiZmMwYzAzXzU0OTc1NTgyMDMzMA_88e2a13e-addb-428b-928c-e05d3a4aa98a"
      unitRef="usd">1100000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:OperatingLossCarryforwards
      contextRef="ie3253d82f9a347f4a62283739cf2c087_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90ZXh0cmVnaW9uOmJhZmFkM2RkZDY0MzQ1Mzk4ZDFmMGIxOTRiZmMwYzAzXzgzMg_19b64583-eba9-4d75-bb3c-8df206977c96"
      unitRef="usd">1300000</us-gaap:OperatingLossCarryforwards>
    <us-gaap:TaxCreditCarryforwardAmount
      contextRef="icee89bae54a5454087107ef727a15a21_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90ZXh0cmVnaW9uOmJhZmFkM2RkZDY0MzQ1Mzk4ZDFmMGIxOTRiZmMwYzAzXzExODQ_9c1e2548-06c6-434e-9439-31aa0b6d4d99"
      unitRef="usd">4100000</us-gaap:TaxCreditCarryforwardAmount>
    <us-gaap:SummaryOfIncomeTaxContingenciesTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90ZXh0cmVnaW9uOmJhZmFkM2RkZDY0MzQ1Mzk4ZDFmMGIxOTRiZmMwYzAzXzQ2ODc_efce5ecc-106a-496a-b78c-e8f8bd9cd4c3">&lt;div style="margin-top:6pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The activity related to the unrecognized income tax benefits is as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Gross unrecognized income tax benefits &#x2014; beginning balance&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:top"&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;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,364&#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:top"/&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:top"&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;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,208&#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:top"/&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:top"&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;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,369&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Increases related to tax positions taken during the current year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;1,788&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;649&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;951&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Decreases related to tax positions taken during current year&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Increases related to tax positions taken during the prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;386&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 2px 13pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Decreases related to tax positions taken during the prior years&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(235)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(1,493)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;(112)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:top"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Gross unrecognized income tax benefits &#x2014; ending balance&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 2px 1pt;text-align:left;vertical-align:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,303&#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:top"/&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:top"&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;/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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,364&#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:top"/&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:top"&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;/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:top"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,208&#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:top"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SummaryOfIncomeTaxContingenciesTextBlock>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzItMS0xLTEtNzc5MDg_5a89fb41-8d58-421f-acbe-a07520586cb1"
      unitRef="usd">2364000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzItMy0xLTEtNzc5MDg_f2c42461-f62f-4ad9-b9a5-2cadde8d1a7f"
      unitRef="usd">3208000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i4d92a3b2acb54d89ae14c1fdee13f997_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzItNS0xLTEtNzc5MDg_9931326e-dac6-43d3-bfd7-09cd2b48b190"
      unitRef="usd">2369000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzMtMS0xLTEtNzc5MDg_c74ac34b-ad7b-4419-87fa-28750cb82e9f"
      unitRef="usd">1788000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzMtMy0xLTEtNzc5MDg_6476ac95-b825-4c00-81db-cf8927535702"
      unitRef="usd">649000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzMtNS0xLTEtNzc5MDg_ee20f0dd-e7e2-42d5-bfaf-566b6e7233df"
      unitRef="usd">951000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromCurrentPeriodTaxPositions
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzQtMS0xLTEtNzc5MDg_25b4b669-4f05-49db-a1d6-e3abcad9eb4c"
      unitRef="usd">0</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromCurrentPeriodTaxPositions
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzQtMy0xLTEtNzc5MDg_eebc164a-4f02-4f48-ad58-2cc831c502a6"
      unitRef="usd">0</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromCurrentPeriodTaxPositions
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzQtNS0xLTEtNzc5MDg_229be632-aa22-4e1b-8466-f2901b75396f"
      unitRef="usd">0</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromCurrentPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzUtMS0xLTEtOTM2NjQ_fb1c6190-4c10-49f3-a4e2-d19f605feffa"
      unitRef="usd">386000</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzUtMy0xLTEtOTM2NjQ_6eedfa51-752e-4a77-91a8-b3f366a7ad92"
      unitRef="usd">0</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzUtNS0xLTEtOTM2NjQ_a4f09982-5399-4b05-9ca7-bd3bd44826e5"
      unitRef="usd">0</us-gaap:UnrecognizedTaxBenefitsIncreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzUtMS0xLTEtNzc5MDg_a60c377b-b1d8-4a8c-b2e1-9e912cf3a2b4"
      unitRef="usd">235000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzUtMy0xLTEtNzc5MDg_1ed612e5-9b8a-4a05-b09b-a8c7b84bb754"
      unitRef="usd">1493000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzUtNS0xLTEtNzc5MDg_224de41e-1314-479b-9a49-def01f2805d8"
      unitRef="usd">112000</us-gaap:UnrecognizedTaxBenefitsDecreasesResultingFromPriorPeriodTaxPositions>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzYtMS0xLTEtNzc5MDg_b173df29-0f79-4f4f-b73d-dd3d6deeba1b"
      unitRef="usd">4303000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzYtMy0xLTEtNzc5MDg_4735e92a-fe3b-44e3-ac2a-f79c69dd1c47"
      unitRef="usd">2364000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefits
      contextRef="i934d8482f1874c40a6c76eb2128d33d0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90YWJsZTpiYTYwMDJhNWY4MGI0ZDEzOGM0MTZmMGJiN2Q1MWM3OC90YWJsZXJhbmdlOmJhNjAwMmE1ZjgwYjRkMTM4YzQxNmYwYmI3ZDUxYzc4XzYtNS0xLTEtNzc5MDg_7e8b7ff7-c9f8-4aae-9704-8282b382ef7b"
      unitRef="usd">3208000</us-gaap:UnrecognizedTaxBenefits>
    <us-gaap:UnrecognizedTaxBenefitsInterestOnIncomeTaxesAccrued
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90ZXh0cmVnaW9uOmJhZmFkM2RkZDY0MzQ1Mzk4ZDFmMGIxOTRiZmMwYzAzXzQwMzU_bec1f285-2c6b-42f4-8c6f-e09f55e66960"
      unitRef="usd">200000</us-gaap:UnrecognizedTaxBenefitsInterestOnIncomeTaxesAccrued>
    <us-gaap:UnrecognizedTaxBenefitsInterestOnIncomeTaxesAccrued
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90ZXh0cmVnaW9uOmJhZmFkM2RkZDY0MzQ1Mzk4ZDFmMGIxOTRiZmMwYzAzXzQwNDI_18bf233d-2150-45f9-9e33-f0f66fa70212"
      unitRef="usd">100000</us-gaap:UnrecognizedTaxBenefitsInterestOnIncomeTaxesAccrued>
    <us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzYvZnJhZzpiYWZhZDNkZGQ2NDM0NTM5OGQxZjBiMTk0YmZjMGMwMy90ZXh0cmVnaW9uOmJhZmFkM2RkZDY0MzQ1Mzk4ZDFmMGIxOTRiZmMwYzAzXzQxMjc_0eef382f-eb79-4611-a11f-6cfc2ce074ef"
      unitRef="usd">4300000</us-gaap:UnrecognizedTaxBenefitsThatWouldImpactEffectiveTaxRate>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90ZXh0cmVnaW9uOjEyYjA5OTJiZDYzNDQ4ODVhYzYzMWQ1ZThjMmIwYjNmXzI1Nw_06d2d510-9665-4f75-b94a-fa0df31bed96">Segment Information &lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents total revenue by geographic area based on the publisher&#x2019;s billing address (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;156,067&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;139,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;96,886&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;EMEA&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;71,869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;62,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;34,156&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;APAC&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;24,844&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,910&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;15,087&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Rest of the world&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,418&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,619&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;256,380&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;226,908&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;148,748&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents property, equipment and software, net, by geographic area (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;59,449&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;42,059&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Rest of the world&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;11,707&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,081&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;71,156&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;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 #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;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:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents operating lease right-of-use assets, by geographic area (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,572&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,956&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Rest of the world&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,634&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,206&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;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 #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21,613&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;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:SegmentReportingDisclosureTextBlock>
    <us-gaap:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90ZXh0cmVnaW9uOjEyYjA5OTJiZDYzNDQ4ODVhYzYzMWQ1ZThjMmIwYjNmXzI1OA_6dc34c17-78aa-459e-942f-667a74dd8c81">&lt;div style="margin-top:6pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents total revenue by geographic area based on the publisher&#x2019;s billing address (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:58.142%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.084%"/&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="15" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Year 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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;156,067&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;139,049&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;96,886&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;EMEA&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;71,869&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;62,531&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;34,156&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;APAC&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;24,844&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,910&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;15,087&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Rest of the world&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;3,600&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;4,418&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;2,619&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total&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 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;256,380&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;226,908&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;148,748&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-top:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents property, equipment and software, net, by geographic area (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;59,449&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;42,059&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Rest of the world&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;11,707&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;8,081&#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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;71,156&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;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 #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;50,140&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;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:9pt;text-align:justify;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table presents operating lease right-of-use assets, by geographic area (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-top:3pt"&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.930%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.081%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.406%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.083%"/&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="9" style="padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&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="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2022&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:1pt solid #000;padding:2px 1pt;text-align:center;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;2021&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;United States&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,572&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;20,956&#160;&lt;/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:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Rest of the world&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;5,634&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;657&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;26,206&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;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 #000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;21,613&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;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:ScheduleOfRevenuesFromExternalCustomersAndLongLivedAssetsByGeographicalAreasTableTextBlock>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i0d52517494f148b38a3a77008e9fd901_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzItMS0xLTEtNzc5MDg_a20629a1-2d23-4d7e-b8e9-d0eac765c264"
      unitRef="usd">156067000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i39af605510974b41b44fa68fae8b8c98_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzItMy0xLTEtNzc5MDg_d12d3ec4-20d1-43cb-9c21-289e73d8c565"
      unitRef="usd">139049000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i466808222e274062aff3df928c7c166d_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzItNS0xLTEtNzc5MDg_3a6b7a2d-e1d3-48f5-99bb-ed3dfac9d7a3"
      unitRef="usd">96886000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i0a676c63337340b3b0cd04b4808a020c_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzMtMS0xLTEtNzc5MDg_32f81ff8-c547-46c6-b69f-1ae3135704e4"
      unitRef="usd">71869000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9e85dd5d1ab24543a1ce002f19f7baa5_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzMtMy0xLTEtNzc5MDg_0a26aa1f-5c38-4a72-828d-b8d1b6cf28ed"
      unitRef="usd">62531000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ieace7ef9fe974585b09fd9121009c8eb_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzMtNS0xLTEtNzc5MDg_3c2158ad-00f4-4784-8a8e-788bff7a23ac"
      unitRef="usd">34156000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i8e47cd305e0c4d47bc6c368e9ade31d2_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzQtMS0xLTEtNzc5MDg_d2a1f151-8cbd-41ef-8c45-2cc3e7242a4b"
      unitRef="usd">24844000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ie2111f322fa24dc1ac2ddccfa4d1f763_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzQtMy0xLTEtNzc5MDg_c4902ed2-93d3-4943-8129-5aba09a58a95"
      unitRef="usd">20910000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="icaf5377d0f2741d1ae185d70e5c0a111_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzQtNS0xLTEtNzc5MDg_a7ca4c02-be67-4e80-a587-953cc52e5ccc"
      unitRef="usd">15087000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2394fa786d024ab9b2a4347c54ea3b5e_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzUtMS0xLTEtNzc5MDg_004ed9b4-7046-4a14-9244-4bffbfbf3cfc"
      unitRef="usd">3600000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ib53833e478f2477f9d83971b7f585522_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzUtMy0xLTEtNzc5MDg_05fae0bc-c6b1-4c2d-b5e4-b0cb35d1cf40"
      unitRef="usd">4418000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i1234901cec2244cb8455808a15509a73_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzUtNS0xLTEtNzc5MDg_28d795ca-e670-4e77-a6fb-aa75580a64a2"
      unitRef="usd">2619000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzYtMS0xLTEtNzc5MDg_c11eb7f7-0e79-4ded-b2c0-7fbb9ba097a8"
      unitRef="usd">256380000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzYtMy0xLTEtNzc5MDg_c9fce26d-e40d-4248-a1ce-a7c965c323fe"
      unitRef="usd">226908000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i6796d6787b6f4a7a959acc734a918314_D20200101-20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo0OTUyZDdjZGFhNzA0M2JiYmU3MGZjMGRhZGU2Zjg2OC90YWJsZXJhbmdlOjQ5NTJkN2NkYWE3MDQzYmJiZTcwZmMwZGFkZTZmODY4XzYtNS0xLTEtNzc5MDg_9853c3f5-15f9-4b38-b13a-52c53010ab82"
      unitRef="usd">148748000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets
      contextRef="i1864a5ebc9d84681b315ac8c7cbc0d47_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTowZjY0MzUyOGQyNTQ0YzU5ODQxNmI5M2IxNWQ3MTNhNC90YWJsZXJhbmdlOjBmNjQzNTI4ZDI1NDRjNTk4NDE2YjkzYjE1ZDcxM2E0XzItMS0xLTEtNzc5MDg_c28d430f-33aa-412b-aeb1-4018c59c3261"
      unitRef="usd">59449000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="idd49986506f0416a83bba2f858a3a192_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTowZjY0MzUyOGQyNTQ0YzU5ODQxNmI5M2IxNWQ3MTNhNC90YWJsZXJhbmdlOjBmNjQzNTI4ZDI1NDRjNTk4NDE2YjkzYjE1ZDcxM2E0XzItMy0xLTEtNzc5MDg_103c2dd7-2d41-40e4-bdb0-640f9f276c70"
      unitRef="usd">42059000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="i6461203608764210af9439dc4f90dcee_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTowZjY0MzUyOGQyNTQ0YzU5ODQxNmI5M2IxNWQ3MTNhNC90YWJsZXJhbmdlOjBmNjQzNTI4ZDI1NDRjNTk4NDE2YjkzYjE1ZDcxM2E0XzMtMS0xLTEtNzc5MDg_47e930dc-bdea-4263-8eac-88e91bf789bb"
      unitRef="usd">11707000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="ibc6207e396ea45ea8b6510d96ea4971a_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTowZjY0MzUyOGQyNTQ0YzU5ODQxNmI5M2IxNWQ3MTNhNC90YWJsZXJhbmdlOjBmNjQzNTI4ZDI1NDRjNTk4NDE2YjkzYjE1ZDcxM2E0XzMtMy0xLTEtNzc5MDg_a92aa524-25e6-4120-82d6-45ec2cb6e1df"
      unitRef="usd">8081000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTowZjY0MzUyOGQyNTQ0YzU5ODQxNmI5M2IxNWQ3MTNhNC90YWJsZXJhbmdlOjBmNjQzNTI4ZDI1NDRjNTk4NDE2YjkzYjE1ZDcxM2E0XzQtMS0xLTEtNzc5MDg_fdd2835c-1aeb-4506-af5f-8ff0a6a1d1a5"
      unitRef="usd">71156000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTowZjY0MzUyOGQyNTQ0YzU5ODQxNmI5M2IxNWQ3MTNhNC90YWJsZXJhbmdlOjBmNjQzNTI4ZDI1NDRjNTk4NDE2YjkzYjE1ZDcxM2E0XzQtMy0xLTEtNzc5MDg_20be413d-974f-4759-81c7-8332c46c8114"
      unitRef="usd">50140000</us-gaap:NoncurrentAssets>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i1864a5ebc9d84681b315ac8c7cbc0d47_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo1YzU4YjZlMzlkNGQ0ZjYyODk0MGQyMjU3NTk1Y2I2Mi90YWJsZXJhbmdlOjVjNThiNmUzOWQ0ZDRmNjI4OTQwZDIyNTc1OTVjYjYyXzItMS0xLTEtOTY3MTM_028015b8-9a4e-4639-883a-bf7a67339d8f"
      unitRef="usd">20572000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="idd49986506f0416a83bba2f858a3a192_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo1YzU4YjZlMzlkNGQ0ZjYyODk0MGQyMjU3NTk1Y2I2Mi90YWJsZXJhbmdlOjVjNThiNmUzOWQ0ZDRmNjI4OTQwZDIyNTc1OTVjYjYyXzItMy0xLTEtOTY3MTM_d047a0c9-5b81-48aa-9a54-b9cd434191ce"
      unitRef="usd">20956000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="i6461203608764210af9439dc4f90dcee_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo1YzU4YjZlMzlkNGQ0ZjYyODk0MGQyMjU3NTk1Y2I2Mi90YWJsZXJhbmdlOjVjNThiNmUzOWQ0ZDRmNjI4OTQwZDIyNTc1OTVjYjYyXzMtMS0xLTEtOTY3MTM_9a3541f1-bb14-4624-b40d-e69025ce03a4"
      unitRef="usd">5634000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ibc6207e396ea45ea8b6510d96ea4971a_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo1YzU4YjZlMzlkNGQ0ZjYyODk0MGQyMjU3NTk1Y2I2Mi90YWJsZXJhbmdlOjVjNThiNmUzOWQ0ZDRmNjI4OTQwZDIyNTc1OTVjYjYyXzMtMy0xLTEtOTY3MTM_c8c1780d-7156-40da-a058-79aa9013924a"
      unitRef="usd">657000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ica476a33b5a7433ba580f12a6b446625_I20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo1YzU4YjZlMzlkNGQ0ZjYyODk0MGQyMjU3NTk1Y2I2Mi90YWJsZXJhbmdlOjVjNThiNmUzOWQ0ZDRmNjI4OTQwZDIyNTc1OTVjYjYyXzQtMS0xLTEtOTcyMDg_9b526e60-a69f-42ac-a11a-9507e2ac7191"
      unitRef="usd">26206000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:OperatingLeaseRightOfUseAsset
      contextRef="ief97a1c2b2da449b96f8636f985476f4_I20211231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xMzkvZnJhZzoxMmIwOTkyYmQ2MzQ0ODg1YWM2MzFkNWU4YzJiMGIzZi90YWJsZTo1YzU4YjZlMzlkNGQ0ZjYyODk0MGQyMjU3NTk1Y2I2Mi90YWJsZXJhbmdlOjVjNThiNmUzOWQ0ZDRmNjI4OTQwZDIyNTc1OTVjYjYyXzQtMy0xLTEtOTcyMTA_d7ba7c38-f462-4e11-80b1-4468f8d0ceeb"
      unitRef="usd">21613000</us-gaap:OperatingLeaseRightOfUseAsset>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNDIvZnJhZzo4Mjg3YmNhMWE3M2E0NjUwOTU1ZTU5ODQzOTExODFkNS90ZXh0cmVnaW9uOjgyODdiY2ExYTczYTQ2NTA5NTVlNTk4NDM5MTE4MWQ1XzQ5NA_db1b7b47-5d35-42ec-ae72-0afaa45a3d10">401(k) PlanThe Company has a 401(k) Savings Plan (the &#x201c;401(k) Plan&#x201d;) that qualifies as a deferred salary arrangement under Section 401(k) of the Internal Revenue Code. Under the 401(k) Plan, participating employees may elect to contribute up to 100% of their eligible compensation, subject to certain limitations. The 401(k) Plan provides for a discretionary employer matching contribution. The Company made $1.2&#160;million matching contribution to the 401(k) Plan for the year ended December&#160;31, 2022 and zero matching contribution for the year ended December&#160;31, 2021.</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNDIvZnJhZzo4Mjg3YmNhMWE3M2E0NjUwOTU1ZTU5ODQzOTExODFkNS90ZXh0cmVnaW9uOjgyODdiY2ExYTczYTQ2NTA5NTVlNTk4NDM5MTE4MWQ1XzI2MQ_97cb6680-88a6-433f-8d7a-2b655e49f562"
      unitRef="number">1</us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent>
    <us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNDIvZnJhZzo4Mjg3YmNhMWE3M2E0NjUwOTU1ZTU5ODQzOTExODFkNS90ZXh0cmVnaW9uOjgyODdiY2ExYTczYTQ2NTA5NTVlNTk4NDM5MTE4MWQ1XzQyMg_12b4ec9a-5c2a-4baf-820b-68232d4b9b5e"
      unitRef="usd">1200000</us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount>
    <us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount
      contextRef="if08442bee0d0483b998a034fd275c9c7_D20210101-20211231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNDIvZnJhZzo4Mjg3YmNhMWE3M2E0NjUwOTU1ZTU5ODQzOTExODFkNS90ZXh0cmVnaW9uOjgyODdiY2ExYTczYTQ2NTA5NTVlNTk4NDM5MTE4MWQ1XzY1OTcwNjk3NjcyMTE_0f076b02-bce8-4066-9bf6-a42a8cba1409"
      unitRef="usd">0</us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount>
    <us-gaap:SubsequentEventsTextBlock
      contextRef="id988dc59601041f4b68c177d299c3941_D20220101-20221231"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNDUvZnJhZzo2NWE1MTc4ODY2NGE0ZWEyOGRiYzU5MDEwZGQyZWVmNy90ZXh0cmVnaW9uOjY1YTUxNzg4NjY0YTRlYTI4ZGJjNTkwMTBkZDJlZWY3XzY1OTcwNjk3Njk0NDM_cb465745-9fc4-447c-925e-75ae3a029040">Subsequent EventsOn February 27, 2023, our Board of Directors authorized a program for the repurchase of up to $75 million of our Class A common stock (&#x201c;2023 Repurchase Program&#x201d;). Pursuant to the 2023 Repurchase Program, we are authorized to repurchase shares in the open market and/or in privately negotiated transactions, in accordance with Rule 10b-18 and/or Rule 10b5-1 of the Exchange Act. The timing and total amount of the repurchases will depend upon business, economic and market conditions, corporate and regulatory requirements, prevailing stock prices and other considerations. The 2023 Repurchase Program is scheduled to terminate on December&#160;31, 2024.</us-gaap:SubsequentEventsTextBlock>
    <us-gaap:StockRepurchaseProgramAuthorizedAmount1
      contextRef="i82175258174b4f9c9cae4c66eac5fe55_I20230227"
      decimals="-6"
      id="id3VybDovL2RvY3MudjEvZG9jOjM5MGZlZGRhNDYwNjQyYWE4YjI0NTdiMTFiNmFlNTViL3NlYzozOTBmZWRkYTQ2MDY0MmFhOGIyNDU3YjExYjZhZTU1Yl8xNDUvZnJhZzo2NWE1MTc4ODY2NGE0ZWEyOGRiYzU5MDEwZGQyZWVmNy90ZXh0cmVnaW9uOjY1YTUxNzg4NjY0YTRlYTI4ZGJjNTkwMTBkZDJlZWY3XzU0OTc1NTgxNjY0Mw_8563e557-681b-4432-a430-42e9067bc75d"
      unitRef="usd">75000000</us-gaap:StockRepurchaseProgramAuthorizedAmount1>
</xbrl>
