<?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/2020-01-31"
  xmlns:dei="http://xbrl.sec.gov/dei/2020-01-31"
  xmlns:iso4217="http://www.xbrl.org/2003/iso4217"
  xmlns:link="http://www.xbrl.org/2003/linkbase"
  xmlns:pubm="http://pubmatic.com/20210630"
  xmlns:srt="http://fasb.org/srt/2020-01-31"
  xmlns:us-gaap="http://fasb.org/us-gaap/2020-01-31"
  xmlns:xbrldi="http://xbrl.org/2006/xbrldi"
  xmlns:xlink="http://www.w3.org/1999/xlink"
  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
    <link:schemaRef xlink:href="pubm-20210630.xsd" xlink:type="simple"/>
    <context id="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i94515d246532427d86c28b2043441f46_I20210731">
        <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-07-31</instant>
        </period>
    </context>
    <context id="i7986c91cc7af456492a4886904d9e82c_I20210731">
        <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-07-31</instant>
        </period>
    </context>
    <context id="i53931419e3844ae89bb7d153267cb9a9_I20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <instant>2021-06-30</instant>
        </period>
    </context>
    <context id="if1330c05b28f4f0aa36a1e480c21e51e_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i0ee4a957d6fa42aaa487b8eb033ee497_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ifa646f534f3642e4847be2f9ee1dfe70_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="id3e19b0628454295a5df2e06ffb156cc_I20201231">
        <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-31</instant>
        </period>
    </context>
    <context id="i3d354229e72d42648260f54eafb0c6b3_I20201231">
        <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-31</instant>
        </period>
    </context>
    <context id="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <startDate>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <startDate>2020-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630">
        <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>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="ia1c60efc980a4db99aeb1a529b154f85_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="icf579b2a6c2c44fca37f674f7007f9e2_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="i23d324590ca243a7a8194a266714ba2a_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="i9e776fcf433d4e939cba97778d4fe868_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="i6fc87bf7362740aea715b9558984b77e_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="i9d2e8b1d60044e689366c4fbf696c9a4_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="i3c3115002bc3467c9b8b8dac7fdb0b17_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="i677988dd98ab4f66b7f2fbc824b06096_D20210101-20210331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="iefd6ed329e8a4fb283f51b4222ed7f4c_D20210101-20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-03-31</endDate>
        </period>
    </context>
    <context id="i437fe293d9564c67b69801500730bc43_D20210101-20210331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="i57f88600129440f0af62e178ff9515cf_D20210101-20210331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="i8efd8bd5b82c481c9be385bc0d6ff868_D20210101-20210331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="i37e2e4d436604917ae03ce047d602fe8_D20210101-20210331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="i12a6b9c8547a4bb2ab349e9e573de18e_I20210331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="ie3f97ca9e64044b899ef1eee1e72cbf8_I20210331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="i70d0c853e2224f2daa0b61d3c2fef14e_I20210331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="i746e8927255c468f839aa4fca915c605_I20210331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="idce6892767114e87b51424b163564cd7_I20210331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="iae839d8e651f4c1aa7e499e7bfd4cc6c_I20210331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="i6ffa45918c3243f093a95479491ab1cb_I20210331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="ie59c8ff014b742a98aa88f17af66bc92_I20210331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <instant>2021-03-31</instant>
        </period>
    </context>
    <context id="ia5c95e585b84403cad9d8d947128cb1e_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i9c0ee01d3b934ef49195764e9c234c8c_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ib72e1e2e7aa14bd7b659e51083b9048b_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i638949be7bfe4f01bd63549c2cc317b0_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i6d18abaf3bcc44e4a6f569ebf2fd8b16_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i32325df743684e89bd151c09d7303c2c_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="id67d926bc9db44d49a056b44f7e0d88e_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ia5a1995a0b3b4a9a8bae27f4020d8b94_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="id493b209c0f04881916657314077e4a5_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="idb83b278e858456c9360b6a8535154ae_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i7efe5f71db9047f7a44187b7c9d59208_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i6d0d75d9bb3d4af2a0a0ca259a33ce1c_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="i6bf9a5af49fc4d1da67e4433eb426f98_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="ie6ae0bb81a9746e2ba8b8f0205432492_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="id4bfcfb2ce954faca718527c1237cb5b_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="i2d15bcd158e7484f9c0bec6b3e7c949e_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="ieac94b54b7094f09aec6e0d49f88a588_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="i62d6b89f594a4ad7b25429ef720bb443_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="i1e08a016aab84706a069e22491b2b4aa_I20191231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <instant>2019-12-31</instant>
        </period>
    </context>
    <context id="i2a697551b9ec47bfa5a5037e28dc191e_D20200101-20200331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="i7f92898d5c26420188cdc91e855a5e70_D20200101-20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-03-31</endDate>
        </period>
    </context>
    <context id="i85ad36ed653f4cf5b31609eae9707b11_D20200101-20200331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="ib1b77dee511e48028666791466a712d3_D20200101-20200331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="i601560a880234090a3e5e0dddf087ca2_D20200101-20200331">
        <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-03-31</endDate>
        </period>
    </context>
    <context id="if50b3f5577dc4f98ab174f969f64fa70_I20200331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="i93d66a43d58f43aea55525957b76f327_I20200331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="ib7ced4d2f8854cd99d210684515d6d98_I20200331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="ic70d853dd741418496bfba4d6c3ec736_I20200331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="i86f7604ad26a4870a417c372a1c5e119_I20200331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="i9564991c152549a49f4cf78d40c9e017_I20200331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="ic2b2a63bf0d048b383b89902dd54d729_I20200331">
        <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-03-31</instant>
        </period>
    </context>
    <context id="ib5194b3540a7424b94acb7755b912f09_I20200331">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <instant>2020-03-31</instant>
        </period>
    </context>
    <context id="i8bb410b6cfff4d7bac1031b0e7a13561_D20200401-20200630">
        <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-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="i3332e7a777e34e5c9cd1f4070c598a99_D20200401-20200630">
        <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-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="iad68d42daf6e4c8abf3ac373f99fd6c5_D20200401-20200630">
        <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-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="ie8deba3eb79541ad9040b1e6678f5ba1_I20200630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i05df435d63d74f69911dca30030f0295_I20200630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ic832207b646a46ecbb9c1721eb503349_I20200630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ifdcaec7e76bb4dcb9201fdb21753b785_I20200630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i149836741c464dde9e4f049ec48b17c3_I20200630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ic303992232004c07a6f9e13b48bf22fb_I20200630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i498da2471b9e43019c0723802bc2e8c2_I20200630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="id90cf55da72b469e9e327aba71b76409_I20200630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <instant>2020-06-30</instant>
        </period>
    </context>
    <context id="i00c628bc475c4af2b8218be0f48a4468_D20201211-20201211">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:IPOMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-12-11</startDate>
            <endDate>2020-12-11</endDate>
        </period>
    </context>
    <context id="i315c70b20331411e889bf05db04885b4_I20201211">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:IPOMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-11</instant>
        </period>
    </context>
    <context id="i42c636af09694c408667ad193b645fde_I20201211">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:SubsidiarySaleOfStockAxis">us-gaap:IPOMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-11</instant>
        </period>
    </context>
    <context id="id2562d5e67fc47c6bd25b95a86e5b2f9_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i57521b0ac40f469e8dd63ba32c763838_D20200401-20200630">
        <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-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="i1937eb0ad37c48a39c0661764a5119c9_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i1d8a52d8f31343538c45722c4e36f7fa_D20200101-20200630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i23cc5f014fb645b9a01f26df490751d9_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i01f877bf0b2740aeba959c8abce1d349_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i6fa75195d2304b189090bda00a57e697_D20210101-20210630">
        <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>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i06736ac299cf4290a81367623120bfa5_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="if65e234734444b97a1b2b945afbb7124_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="i1785f38db7864fd8b9f3ef33bad9f564_D20200101-20201231">
        <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>2020-01-01</startDate>
            <endDate>2020-12-31</endDate>
        </period>
    </context>
    <context id="if527d4ab37e14c7085649f25cc5f6fd5_D20200101-20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:MajorCustomersAxis">pubm:BuyerFourMember</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="i2b73d56f6ce5465aa343828d7d4b8095_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i594fdb6da3314cd9bba437395f29a651_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i7904825eb1914a70804986460a5f2aee_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i7661eade67d543e6811a88ffa3471b00_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i9c63931762914c12bddf26576a0af3c0_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="iab5631586b854f3aa0f73b9c6eb4bd2a_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i0a3d41410edf471bbbc0fa0f9d937fa3_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i823ebec8c9b1401994e6f6b76aac2cc6_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i80b0fc061f34451f8e09aed489182878_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ibce249cb5b74454bba910bcb9387537d_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="iacf0c7e8f4334619b6e44a103c2c8ab2_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="if1fe12f2887e437ea828a92dcac847f7_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ie40dcf42a87543188ff256eeaa00942c_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i792d6faa6ea6462497a321f81975dfc0_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i997933b355124c749123dd37001e95f6_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ic7c9cc1668ca47248ece3328d66ad37a_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i12b45a75206448af9c5ab92ab596121b_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i96604ba573764bafa371225993430791_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ie1d1cfcea9ac4064978afa0f34dc8121_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i058489cdcfdc418b8d22c58b526076ba_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i13f78ce8149d499aac56fb9a9e89b0fa_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="iba587efaf94849ba8f8f9bbc3c2c7d6a_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="icbaa7cf62c094a62ab354f0f045dc689_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i20f3962574624ce890157b7c69724dad_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CommercialPaperMember</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>2020-12-31</instant>
        </period>
    </context>
    <context id="i287bb220ef36464f8f0b238b76477272_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CommercialPaperMember</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>2020-12-31</instant>
        </period>
    </context>
    <context id="ide90286cf52743edbf7cc5b27b341496_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CommercialPaperMember</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>2020-12-31</instant>
        </period>
    </context>
    <context id="i24061fe7e0104fc5bd4f64733946ecf3_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:CashAndCashEquivalentsAxis">us-gaap:CommercialPaperMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:FairValueByMeasurementFrequencyAxis">us-gaap:FairValueMeasurementsRecurringMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="i3bc985656f444c38b8187449958a01da_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i1224e145852348178f728a0fd5b7df4d_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i211b40e423b94f53b92c84d1bd24a72d_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i166d4d7adabb4ed9bab63a44c34977cf_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i6e5ab54261e641f390462a6c976cc135_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i6e2ca297f02f465ca1afa4707a86bad9_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="idb2d9a82496c453dac3c15ef2269f7f7_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="ie689a70cd9e44f3f8f343385407514d3_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="ibdce1cdbed8143d0b87afb0e7cdcf635_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="ibb20f355e3a64d318c241eb2c9641113_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i75fdbb5b030b4b67951cd01246fb7dd4_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i82ed9b56331447348d6a3382a0030b0e_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="ib9aec4773ec54c239a246fa31b75bafc_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i68b35f486d074bde9942cb13aef326c1_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="id39be5b3e8784e62af01a7b45a417038_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i4fc735e430204e40aab1a6b829344d33_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i09264f42c43d440abd1f9155e71906a1_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="ibe01f4d941fa45ed80d6865b2343f101_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i734f1ad6138e40d59095880140b18cfc_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ic244186eb178415ba355cfedcc0b2aca_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i715e992d3afc4991b6543600baeb571c_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ie1c2b6ee2ede4836a2aad96e86aecab0_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i7698bd64b0de4d0c810f9022b713b833_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ie1f613b0eaf5440eb553b436c6e01fda_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="i4e5685df437946898e5f605afe116447_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i75dfd4d9494b4b3bab8e26154f2ba9db_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="id8f1c0315ca74354abc9d18536399653_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i4d31af61ae514088b247e247eff96357_D20200101-20200630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i5cd734c78925499f9f27cbae5e30d503_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="if39ba15452f54344bc34e0369bcd3614_D20200401-20200630">
        <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-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="ieb93c88fe33d43c7bf223b03bf4aa18e_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="i5f9e8f1881ef417ca67c81915aa29f12_D20210101-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-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i29d4590db24f42b29b065a6c6364ab6f_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="i4a5197bc97764185beadba06d68a93e5_I20201211">
        <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-11</instant>
        </period>
    </context>
    <context id="ia656bf7d614e4c99b7db05ff76ca3446_I20201211">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <instant>2020-12-11</instant>
        </period>
    </context>
    <context id="i5205e1d5adc6440880574cbff0036f47_I20180831">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:DebtInstrumentAxis">pubm:TwoPointFourTwoPercentPromissoryNotesDueAugust2021Member</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:LongtermDebtTypeAxis">us-gaap:NotesPayableOtherPayablesMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2018-08-31</instant>
        </period>
    </context>
    <context id="i18fe6ed9aa1f456e8c5c56ad35c265d6_I20180831">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
        </entity>
        <period>
            <instant>2018-08-31</instant>
        </period>
    </context>
    <context id="i1047eb5f2b174e169f23d31777e75e85_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="ibdd58ef7fa234ef396f4e51463c0e14f_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="i5dc22d4e2b634266a39fe55c916cdb1b_I20210630">
        <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>2021-06-30</instant>
        </period>
    </context>
    <context id="i64cc3c6223b2426484c08f821db66e36_D20210101-20210630">
        <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>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ia04ce9d590834f0a95ec952793f32cb3_I20201231">
        <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>2020-12-31</instant>
        </period>
    </context>
    <context id="ia865ae391ed94a68beb4e3e756157360_D20210101-20210630">
        <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>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="idaff69b3e3e0488eaee290b47304a8b5_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i60a71ea05d524097ab3124710895737c_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="idad679e311e04ea680b0d9bd218d0e95_D20210101-20210630">
        <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>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="if2dea39f2c29481d9296e988d326c7d2_I20210630">
        <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>2021-06-30</instant>
        </period>
    </context>
    <context id="i5b3e81f129da4d5aae0f5a8eb54cdb81_I20210630">
        <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>2021-06-30</instant>
        </period>
    </context>
    <context id="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630">
        <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>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i24d8891f46ae4b64a792ebcc21822e98_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="iee39e043a8dd441795c9914e5f5c966b_D20200401-20200630">
        <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-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="id927524d8f7e4a6c84ad4f004f69e40a_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="ie01a7e7cc183415d8e1352ffe8cf2c02_D20200101-20200630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i1a4735fdea80482eba4bdb23d6e5b647_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="icb5a11042523407889453d9ca7c1cbbb_D20200401-20200630">
        <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-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="id2d3b221a4d741a6b84fb65c29819d19_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="ic61a0a17c5654c7d8a811c8224301cb4_D20200101-20200630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i2a60c12f5d14425f9ba7011a7bacb8aa_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ib97106db397649ae9b56f448bdb5fcc6_D20200401-20200630">
        <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-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="i240bba25ca1a46099a068aaebc072c01_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="id42df71621494e09a242edd8fcf14d6b_D20200101-20200630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i889a6d966ca34596b6c197d209a04284_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i64b58f12f0cc46ff8d849825dd65d987_D20200401-20200630">
        <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-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="ib0deafceef5640cbafe09f80d77fccb6_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i9b16c33ba4184180bbef77336a4a8cd6_D20200101-20200630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630">
        <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>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630">
        <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>
            <startDate>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630">
        <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>2020-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630">
        <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>
            <startDate>2020-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="ic28086ab3ca44c868fa13b07e408db6b_D20210401-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="id5abfe55fd854e629761f3debadfc8c5_D20210401-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ic13fba35d7f14dbf9ba64870cc64776e_D20200401-20200630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="i0acde90882234ee899aee25b7f6306f4_D20200401-20200630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="iee9c00e7bee04e1fa2e891cdd00ce933_D20210401-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i6360aa5105354c8da4cdaf6bccae7162_D20210401-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i21739dbe54ab404081f7633d544557a3_D20200401-20200630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="i006a767bedfd473f87b0c4a33e478f4c_D20200401-20200630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630">
        <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>
            <startDate>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630">
        <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>2020-01-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="i8fe62f5760b54075b95ce16c52b8c53b_D20210101-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ib18575647d3546cfbd50d6bf6db90a54_D20210101-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="iea9714b933ff41c29a94988dd91418f1_D20200101-20200630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="i636f8e1b0c3a4d5aa63fd047996fe330_D20200101-20200630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:EmployeeStockOptionMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="i8b55e609280741cfa6dbb6583ae8c4a7_D20210101-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i5c3a9b1a6df441e5a9afb1fb95744a11_D20210101-20210630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2021-01-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ifb790efbf3104ed5a1584f267bc880be_D20200101-20200630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassAMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="ice8d360a223b4625a45acbe73ffeb338_D20200101-20200630">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareByAntidilutiveSecuritiesAxis">us-gaap:ConvertiblePreferredStockMember</xbrldi:explicitMember>
                <xbrldi:explicitMember dimension="us-gaap:StatementClassOfStockAxis">us-gaap:CommonClassBMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <startDate>2020-01-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="id836244134e847f8a847ee58b0bb7092_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i0e4e26c54eeb48e888fb886a4590a033_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i9e2df87c0b2f4d6b9e045f6280c302cd_D20200401-20200630">
        <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-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="ic4a2ff7c2f164233950e6000e7841a8c_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="ie57b792b603d462ca1c5720946aff34a_D20200101-20200630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="ie9453fc6766d4519b643a7d8dd5375ba_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="ic5bca3ca905e498e8ad9d466cc7bbe48_D20200401-20200630">
        <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-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="i2031c51bd5cf48dbab428c29b67faad0_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i398d501303c14d0d81a309804eee0fbf_D20200101-20200630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i9092d0f3525946008967bf211d401a87_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i76a93483fdc848fc95afe3c4ea65e424_D20200401-20200630">
        <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-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="i58e9cf97a8eb44a1b640a4f1415834a7_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="ie42c0ef276c84a24a45efe5cee6fb156_D20200101-20200630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i5bbaa269e598400f924e68c4f1fd098f_D20210401-20210630">
        <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-04-01</startDate>
            <endDate>2021-06-30</endDate>
        </period>
    </context>
    <context id="i7d38e065585e4332ac6f67f9d464fb7e_D20200401-20200630">
        <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-04-01</startDate>
            <endDate>2020-06-30</endDate>
        </period>
    </context>
    <context id="i9d17f36f4b994695a63fc97ad85c0334_D20210101-20210630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i0d8a56719a784b348e32f35e629575c2_D20200101-20200630">
        <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-06-30</endDate>
        </period>
    </context>
    <context id="i3fdab62c600a4529a02f18a3fca4b832_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="i60e9881f50834e40bc1337361e187c19_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">country:US</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <context id="if8cdfa05f44947da8036bff34492a275_I20210630">
        <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-06-30</instant>
        </period>
    </context>
    <context id="ie630db62be30423c8d9ffc1e06b3b2af_I20201231">
        <entity>
            <identifier scheme="http://www.sec.gov/CIK">0001422930</identifier>
            <segment>
                <xbrldi:explicitMember dimension="srt:StatementGeographicalAxis">pubm:RestOfTheWorldMember</xbrldi:explicitMember>
            </segment>
        </entity>
        <period>
            <instant>2020-12-31</instant>
        </period>
    </context>
    <unit id="shares">
        <measure>shares</measure>
    </unit>
    <unit id="usd">
        <measure>iso4217:USD</measure>
    </unit>
    <unit id="usdPerShare">
        <divide>
            <unitNumerator>
                <measure>iso4217:USD</measure>
            </unitNumerator>
            <unitDenominator>
                <measure>shares</measure>
            </unitDenominator>
        </divide>
    </unit>
    <unit id="number">
        <measure>pure</measure>
    </unit>
    <dei:AmendmentFlag
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180L2ZyYWc6MTU5Mzc0MDEyOWE4NDU1Zjg3NzZmNDdkMzM5ZGUxMDQvdGFibGU6MTI3MWY3M2E4ZDI2NDFiYjliYWNlMTNlMDYyZjgzYWUvdGFibGVyYW5nZToxMjcxZjczYThkMjY0MWJiOWJhY2UxM2UwNjJmODNhZV8yLTEtMS0xLTA_bcbd0623-452e-4802-b175-4ee93e8dc350">false</dei:AmendmentFlag>
    <dei:EntityCentralIndexKey
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180L2ZyYWc6MTU5Mzc0MDEyOWE4NDU1Zjg3NzZmNDdkMzM5ZGUxMDQvdGFibGU6MTI3MWY3M2E4ZDI2NDFiYjliYWNlMTNlMDYyZjgzYWUvdGFibGVyYW5nZToxMjcxZjczYThkMjY0MWJiOWJhY2UxM2UwNjJmODNhZV81LTEtMS0xLTA_fd871d49-a3b3-4310-90bd-56c050de43ab">0001422930</dei:EntityCentralIndexKey>
    <dei:CurrentFiscalYearEndDate
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180L2ZyYWc6MTU5Mzc0MDEyOWE4NDU1Zjg3NzZmNDdkMzM5ZGUxMDQvdGFibGU6MTI3MWY3M2E4ZDI2NDFiYjliYWNlMTNlMDYyZjgzYWUvdGFibGVyYW5nZToxMjcxZjczYThkMjY0MWJiOWJhY2UxM2UwNjJmODNhZV84LTEtMS0xLTA_57cc5c60-556d-450f-bda2-fda5d771a5ed">--12-31</dei:CurrentFiscalYearEndDate>
    <dei:DocumentFiscalYearFocus
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180L2ZyYWc6MTU5Mzc0MDEyOWE4NDU1Zjg3NzZmNDdkMzM5ZGUxMDQvdGFibGU6MTI3MWY3M2E4ZDI2NDFiYjliYWNlMTNlMDYyZjgzYWUvdGFibGVyYW5nZToxMjcxZjczYThkMjY0MWJiOWJhY2UxM2UwNjJmODNhZV8xNS0xLTEtMS0w_7037f491-555c-4dfb-ab83-9cfe416e0641">2021</dei:DocumentFiscalYearFocus>
    <dei:DocumentFiscalPeriodFocus
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180L2ZyYWc6MTU5Mzc0MDEyOWE4NDU1Zjg3NzZmNDdkMzM5ZGUxMDQvdGFibGU6MTI3MWY3M2E4ZDI2NDFiYjliYWNlMTNlMDYyZjgzYWUvdGFibGVyYW5nZToxMjcxZjczYThkMjY0MWJiOWJhY2UxM2UwNjJmODNhZV8xNi0xLTEtMS0w_0fff0751-cc93-4225-b8d3-cecfe704dd1f">Q2</dei:DocumentFiscalPeriodFocus>
    <dei:EntityAddressAddressLine1
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180L2ZyYWc6MTU5Mzc0MDEyOWE4NDU1Zjg3NzZmNDdkMzM5ZGUxMDQvdGFibGU6MTI3MWY3M2E4ZDI2NDFiYjliYWNlMTNlMDYyZjgzYWUvdGFibGVyYW5nZToxMjcxZjczYThkMjY0MWJiOWJhY2UxM2UwNjJmODNhZV8xNy0xLTEtMS0zODY4_98067fab-80eb-4e11-8f14-c097a7d33631">3 Lagoon Drive</dei:EntityAddressAddressLine1>
    <dei:EntityAddressAddressLine2
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180L2ZyYWc6MTU5Mzc0MDEyOWE4NDU1Zjg3NzZmNDdkMzM5ZGUxMDQvdGFibGU6MTI3MWY3M2E4ZDI2NDFiYjliYWNlMTNlMDYyZjgzYWUvdGFibGVyYW5nZToxMjcxZjczYThkMjY0MWJiOWJhY2UxM2UwNjJmODNhZV8xOC0xLTEtMS0zODY4_911db194-d336-4e1c-8829-9e8f53a5d844">Suite 180</dei:EntityAddressAddressLine2>
    <dei:EntityAddressCityOrTown
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180L2ZyYWc6MTU5Mzc0MDEyOWE4NDU1Zjg3NzZmNDdkMzM5ZGUxMDQvdGFibGU6MTI3MWY3M2E4ZDI2NDFiYjliYWNlMTNlMDYyZjgzYWUvdGFibGVyYW5nZToxMjcxZjczYThkMjY0MWJiOWJhY2UxM2UwNjJmODNhZV8xOS0xLTEtMS0zODY4_410067c2-6f6e-422f-953f-39b005909552">Redwood City</dei:EntityAddressCityOrTown>
    <dei:EntityAddressStateOrProvince
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180L2ZyYWc6MTU5Mzc0MDEyOWE4NDU1Zjg3NzZmNDdkMzM5ZGUxMDQvdGFibGU6MTI3MWY3M2E4ZDI2NDFiYjliYWNlMTNlMDYyZjgzYWUvdGFibGVyYW5nZToxMjcxZjczYThkMjY0MWJiOWJhY2UxM2UwNjJmODNhZV8yMC0xLTEtMS0zODY4_4b417da7-592c-4650-bcae-e897cacd1e7e">CA</dei:EntityAddressStateOrProvince>
    <dei:EntityAddressPostalZipCode
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180L2ZyYWc6MTU5Mzc0MDEyOWE4NDU1Zjg3NzZmNDdkMzM5ZGUxMDQvdGFibGU6MTI3MWY3M2E4ZDI2NDFiYjliYWNlMTNlMDYyZjgzYWUvdGFibGVyYW5nZToxMjcxZjczYThkMjY0MWJiOWJhY2UxM2UwNjJmODNhZV8yMS0xLTEtMS0zODY4_a4c603a2-ad10-4f6e-a298-01af70fa1b4f">94065</dei:EntityAddressPostalZipCode>
    <dei:DocumentType
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGV4dHJlZ2lvbjpkMDNkOTVmODA5YzU0YTk2YmM2MzcwY2MxODFkZmFiNF8yMTAy_e152d0ec-ce18-4b59-8347-f21fb9631f58">10-Q</dei:DocumentType>
    <dei:DocumentQuarterlyReport
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGV4dHJlZ2lvbjpkMDNkOTVmODA5YzU0YTk2YmM2MzcwY2MxODFkZmFiNF8yMTA1_966f8d1e-fbb6-4483-b388-ed48ba26ce53">true</dei:DocumentQuarterlyReport>
    <dei:DocumentPeriodEndDate
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGV4dHJlZ2lvbjpkMDNkOTVmODA5YzU0YTk2YmM2MzcwY2MxODFkZmFiNF8yMjU_78fe8ea6-c0db-4862-b7e7-4c74a9bf9a90">2021-06-30</dei:DocumentPeriodEndDate>
    <dei:DocumentTransitionReport
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGV4dHJlZ2lvbjpkMDNkOTVmODA5YzU0YTk2YmM2MzcwY2MxODFkZmFiNF8yMTEx_d78fa4e9-1055-466d-ba01-77b6bd4df36f">false</dei:DocumentTransitionReport>
    <dei:EntityFileNumber
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGV4dHJlZ2lvbjpkMDNkOTVmODA5YzU0YTk2YmM2MzcwY2MxODFkZmFiNF8yMTEy_c7296ce8-07a1-4583-8479-cdd3cfa37da2">001-39748</dei:EntityFileNumber>
    <dei:EntityRegistrantName
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGV4dHJlZ2lvbjpkMDNkOTVmODA5YzU0YTk2YmM2MzcwY2MxODFkZmFiNF8yMTAz_3e709d6a-07de-4258-95c4-2709d27bc0fe">PUBMATIC, INC.</dei:EntityRegistrantName>
    <dei:EntityIncorporationStateCountryCode
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGFibGU6NmI2ZWE4YjI0NmMyNDE1NmJiODcxNDlmNTkzMGUyNDgvdGFibGVyYW5nZTo2YjZlYThiMjQ2YzI0MTU2YmI4NzE0OWY1OTMwZTI0OF8wLTAtMS0xLTA_fe951f1f-c639-4186-b9e4-7680c90c8485">DE</dei:EntityIncorporationStateCountryCode>
    <dei:EntityTaxIdentificationNumber
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGFibGU6NmI2ZWE4YjI0NmMyNDE1NmJiODcxNDlmNTkzMGUyNDgvdGFibGVyYW5nZTo2YjZlYThiMjQ2YzI0MTU2YmI4NzE0OWY1OTMwZTI0OF8wLTEtMS0xLTA_19d417f1-1100-4e26-8dcd-d0b323a0bee1">20-5863224</dei:EntityTaxIdentificationNumber>
    <dei:Security12bTitle
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGFibGU6MTZlYTJmZDZmYjk5NGNhMWFjYzU1NWY0Mzk2Zjk0YzcvdGFibGVyYW5nZToxNmVhMmZkNmZiOTk0Y2ExYWNjNTU1ZjQzOTZmOTRjN18xLTAtMS0xLTA_cc3a45b6-4a9f-4e4c-a376-84903fe5bc5d">Class A common stock, $0.0001 par value per share</dei:Security12bTitle>
    <dei:TradingSymbol
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGFibGU6MTZlYTJmZDZmYjk5NGNhMWFjYzU1NWY0Mzk2Zjk0YzcvdGFibGVyYW5nZToxNmVhMmZkNmZiOTk0Y2ExYWNjNTU1ZjQzOTZmOTRjN18xLTEtMS0xLTA_4101be40-c210-4a5f-97a7-d14f6872933c">PUBM</dei:TradingSymbol>
    <dei:SecurityExchangeName
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGFibGU6MTZlYTJmZDZmYjk5NGNhMWFjYzU1NWY0Mzk2Zjk0YzcvdGFibGVyYW5nZToxNmVhMmZkNmZiOTk0Y2ExYWNjNTU1ZjQzOTZmOTRjN18xLTItMS0xLTA_7e2e58bc-3476-446a-bfc9-159d011c65b7">NASDAQ</dei:SecurityExchangeName>
    <dei:EntityCurrentReportingStatus
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGV4dHJlZ2lvbjpkMDNkOTVmODA5YzU0YTk2YmM2MzcwY2MxODFkZmFiNF8yMTEz_4a800d3e-052b-4e63-bd29-95faec675ba2">Yes</dei:EntityCurrentReportingStatus>
    <dei:EntityInteractiveDataCurrent
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGV4dHJlZ2lvbjpkMDNkOTVmODA5YzU0YTk2YmM2MzcwY2MxODFkZmFiNF8yMTA4_6b24a05e-4574-4cd7-8bd1-4915db7345a5">Yes</dei:EntityInteractiveDataCurrent>
    <dei:EntityFilerCategory
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGFibGU6OGFiODIyMjQ5MjRjNDZmZDkwMzY0MWJmZDQzMTkwMTYvdGFibGVyYW5nZTo4YWI4MjIyNDkyNGM0NmZkOTAzNjQxYmZkNDMxOTAxNl8yLTAtMS0xLTA_aa0133a5-5e32-47c5-b2f4-8e1fdd2b23cd">Non-accelerated Filer</dei:EntityFilerCategory>
    <dei:EntitySmallBusiness
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGFibGU6OGFiODIyMjQ5MjRjNDZmZDkwMzY0MWJmZDQzMTkwMTYvdGFibGVyYW5nZTo4YWI4MjIyNDkyNGM0NmZkOTAzNjQxYmZkNDMxOTAxNl8yLTUtMS0xLTA_d278019d-0482-4d1e-9900-1631e1fbe5a4">false</dei:EntitySmallBusiness>
    <dei:EntityEmergingGrowthCompany
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGFibGU6OGFiODIyMjQ5MjRjNDZmZDkwMzY0MWJmZDQzMTkwMTYvdGFibGVyYW5nZTo4YWI4MjIyNDkyNGM0NmZkOTAzNjQxYmZkNDMxOTAxNl80LTUtMS0xLTA_158a8c8b-8192-427b-96d7-4b6a9a3510a1">true</dei:EntityEmergingGrowthCompany>
    <dei:EntityExTransitionPeriod
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGV4dHJlZ2lvbjpkMDNkOTVmODA5YzU0YTk2YmM2MzcwY2MxODFkZmFiNF8yMTA5_03bcad33-71a0-4eb9-a3d7-9d29c9df65c6">false</dei:EntityExTransitionPeriod>
    <dei:EntityShellCompany
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGV4dHJlZ2lvbjpkMDNkOTVmODA5YzU0YTk2YmM2MzcwY2MxODFkZmFiNF8yMTEw_392cb377-b219-4624-8044-4861ea01efb6">false</dei:EntityShellCompany>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i94515d246532427d86c28b2043441f46_I20210731"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGV4dHJlZ2lvbjpkMDNkOTVmODA5YzU0YTk2YmM2MzcwY2MxODFkZmFiNF8xNjQ5MjY3NDQ0MDgz_ad89217f-1a8c-4f4f-9c09-c5c85d73a4c4"
      unitRef="shares">19838563</dei:EntityCommonStockSharesOutstanding>
    <dei:EntityCommonStockSharesOutstanding
      contextRef="i7986c91cc7af456492a4886904d9e82c_I20210731"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xL2ZyYWc6ZDAzZDk1ZjgwOWM1NGE5NmJjNjM3MGNjMTgxZGZhYjQvdGV4dHJlZ2lvbjpkMDNkOTVmODA5YzU0YTk2YmM2MzcwY2MxODFkZmFiNF8xNjQ5MjY3NDQ0MDg3_c5b7e9ff-62c3-43a0-a9f9-03556389d864"
      unitRef="shares">30521626</dei:EntityCommonStockSharesOutstanding>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfNC0xLTEtMS0w_616dccff-1acd-4bd8-b289-490666ee8e82"
      unitRef="usd">90620000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:CashAndCashEquivalentsAtCarryingValue
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfNC0zLTEtMS0w_ff96b383-6eed-44a3-899c-0cb57ccc8169"
      unitRef="usd">81188000</us-gaap:CashAndCashEquivalentsAtCarryingValue>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfNS0xLTEtMS0w_33761629-bce8-4d71-bc52-2682e43e642c"
      unitRef="usd">31370000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfNS0zLTEtMS0w_819db8ea-9cc6-4ab1-a1ad-1563d3b78441"
      unitRef="usd">19793000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfNi0xLTEtMS0w_a44f55f9-4956-4f8f-9689-a42771b87e2a"
      unitRef="usd">195428000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:AccountsReceivableNetCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfNi0zLTEtMS0w_c6e9ab39-b6f5-4df7-9d39-70ade9827878"
      unitRef="usd">219511000</us-gaap:AccountsReceivableNetCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfNy0xLTEtMS0w_c7850a88-9d99-434c-abca-72e25ed8d6eb"
      unitRef="usd">14170000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:PrepaidExpenseAndOtherAssetsCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfNy0zLTEtMS0w_7b698398-62fd-4aa2-89ba-01ab94c11d23"
      unitRef="usd">6622000</us-gaap:PrepaidExpenseAndOtherAssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfOC0xLTEtMS0w_8337a5d6-762c-4512-b607-55f93f13aae9"
      unitRef="usd">331588000</us-gaap:AssetsCurrent>
    <us-gaap:AssetsCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfOC0zLTEtMS0w_e2bf832d-fbad-4c96-a9c6-7021e328ae08"
      unitRef="usd">327114000</us-gaap:AssetsCurrent>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfOS0xLTEtMS0w_5d9f525d-c95a-44ad-b009-e9a6bc73ab83"
      unitRef="usd">43601000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfOS0zLTEtMS0w_36e6b033-8da9-4d9d-b79b-4f48021c116e"
      unitRef="usd">30044000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:Goodwill
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTAtMS0xLTEtMA_7b469fa0-8d86-4531-b126-9cab06aa2255"
      unitRef="usd">6250000</us-gaap:Goodwill>
    <us-gaap:Goodwill
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTAtMy0xLTEtMA_233c979a-4b63-4775-95b3-6ca1db4ed757"
      unitRef="usd">6250000</us-gaap:Goodwill>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTEtMS0xLTEtMA_c3c308fb-98c9-4329-8094-2ed0b06238bf"
      unitRef="usd">495000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:DeferredIncomeTaxAssetsNet
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTEtMy0xLTEtMA_a5f835b4-da74-4405-8e1c-49ba95aa920d"
      unitRef="usd">762000</us-gaap:DeferredIncomeTaxAssetsNet>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTItMS0xLTEtMA_22f12f39-babe-4255-89eb-43845d7b3278"
      unitRef="usd">1844000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:OtherAssetsNoncurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTItMy0xLTEtMA_8f7b1f57-441b-4afa-b02b-62eada46c59d"
      unitRef="usd">7076000</us-gaap:OtherAssetsNoncurrent>
    <us-gaap:Assets
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTMtMS0xLTEtMA_7fccfb67-5447-470d-8c34-9ff64cca47cc"
      unitRef="usd">383778000</us-gaap:Assets>
    <us-gaap:Assets
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTMtMy0xLTEtMA_7090eba4-fb3d-4851-acce-fb5ef38197e6"
      unitRef="usd">371246000</us-gaap:Assets>
    <us-gaap:AccountsPayableCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTYtMS0xLTEtMA_85c91dd0-582e-4a15-8c6f-bc1e0e58ceca"
      unitRef="usd">162576000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTYtMy0xLTEtMA_f6980621-f585-4c60-b974-8aa41628d0d2"
      unitRef="usd">176731000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTctMS0xLTEtMA_e4825cce-e4ee-4883-83b3-b519a2e488f6"
      unitRef="usd">13780000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTctMy0xLTEtMA_3aad8599-de7e-467e-8913-32ffed1d8b43"
      unitRef="usd">14844000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTgtMS0xLTEtMA_543dc153-1a4d-40d4-b09e-9b2cb0925b95"
      unitRef="usd">176356000</us-gaap:LiabilitiesCurrent>
    <us-gaap:LiabilitiesCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTgtMy0xLTEtMA_a9fc446b-51c9-4813-8868-0eae0693121f"
      unitRef="usd">191575000</us-gaap:LiabilitiesCurrent>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTktMS0xLTEtMA_bb80fbec-d825-4025-b7dc-628d8b7782ec"
      unitRef="usd">2552000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:DeferredIncomeTaxLiabilitiesNet
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMTktMy0xLTEtMA_fff47287-f113-46a3-8f79-55c58506c4ff"
      unitRef="usd">1561000</us-gaap:DeferredIncomeTaxLiabilitiesNet>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjAtMS0xLTEtMA_24ded467-06e6-4ca6-b4e1-784ec8fd8c26"
      unitRef="usd">2789000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:OtherLiabilitiesNoncurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjAtMy0xLTEtMA_9691b09c-ffc5-492c-9fc0-3158b1e1b684"
      unitRef="usd">2683000</us-gaap:OtherLiabilitiesNoncurrent>
    <us-gaap:Liabilities
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjEtMS0xLTEtMA_d8ea1f2c-c0bb-4e9f-b7f5-9246338eea48"
      unitRef="usd">181697000</us-gaap:Liabilities>
    <us-gaap:Liabilities
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjEtMy0xLTEtMA_771fee80-0a3d-49b0-a524-68688e37a032"
      unitRef="usd">195819000</us-gaap:Liabilities>
    <us-gaap:CommitmentsAndContingencies
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjItMS0xLTEtMA_b66701f7-4f89-4c2b-9e49-89e2d8067462"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:CommitmentsAndContingencies
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjItMy0xLTEtMA_21722434-256e-43ac-8769-60db8978690c"
      unitRef="usd"
      xsi:nil="true"/>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjQtMC0xLTEtMC90ZXh0cmVnaW9uOjQzYjg5OTc5NzhjYTRlZjg4MWYzZWFmOTUwMGQzMjhhXzIx_a1ebc0b2-cf44-4a6d-b146-2e0339f6e157"
      unitRef="usdPerShare">0.0001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjQtMC0xLTEtMC90ZXh0cmVnaW9uOjQzYjg5OTc5NzhjYTRlZjg4MWYzZWFmOTUwMGQzMjhhXzIx_ce8d12f4-57f8-40e4-a5eb-e663fe33cd2a"
      unitRef="usdPerShare">0.0001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjQtMC0xLTEtMC90ZXh0cmVnaW9uOjQzYjg5OTc5NzhjYTRlZjg4MWYzZWFmOTUwMGQzMjhhXzQ1_ced96d57-f15d-4266-bda3-c9044e3797c5"
      unitRef="shares">10000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjQtMC0xLTEtMC90ZXh0cmVnaW9uOjQzYjg5OTc5NzhjYTRlZjg4MWYzZWFmOTUwMGQzMjhhXzEwNA_1b445490-aa12-48fe-a4f2-95976c8db6b9"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesOutstanding
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjQtMC0xLTEtMC90ZXh0cmVnaW9uOjQzYjg5OTc5NzhjYTRlZjg4MWYzZWFmOTUwMGQzMjhhXzEwNA_2b99c1de-8c23-4c09-97db-0265a02ec938"
      unitRef="shares">0</us-gaap:PreferredStockSharesOutstanding>
    <us-gaap:PreferredStockSharesIssued
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjQtMC0xLTEtMC90ZXh0cmVnaW9uOjQzYjg5OTc5NzhjYTRlZjg4MWYzZWFmOTUwMGQzMjhhXzEwNA_3aa47759-f5cb-4ab9-a8a4-047986454370"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockSharesIssued
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjQtMC0xLTEtMC90ZXh0cmVnaW9uOjQzYjg5OTc5NzhjYTRlZjg4MWYzZWFmOTUwMGQzMjhhXzEwNA_d385c2a1-4864-4b5d-b3e7-b9b65e37819f"
      unitRef="shares">0</us-gaap:PreferredStockSharesIssued>
    <us-gaap:PreferredStockValue
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjQtMS0xLTEtMA_63c34e1e-d2e9-4f3f-bb63-f381c9c70a6f"
      unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:PreferredStockValue
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjQtMy0xLTEtMA_5cb9471f-7ca3-431f-8f0d-866212e72a4c"
      unitRef="usd">0</us-gaap:PreferredStockValue>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i0ee4a957d6fa42aaa487b8eb033ee497_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1XzI4_1ecc58a9-bb54-48ef-bfc4-0342d7513858"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="ifa646f534f3642e4847be2f9ee1dfe70_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1XzI4_28ec919e-94c0-46d1-9909-8bc3fd94ca31"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="id3e19b0628454295a5df2e06ffb156cc_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1XzI4_d0b44e1a-21ad-489b-ac7e-f7d7651fe405"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i3d354229e72d42648260f54eafb0c6b3_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1XzI4_e86d7850-76da-4b7c-9d2c-e53a454a2eae"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i0ee4a957d6fa42aaa487b8eb033ee497_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1XzQy_7c3511d0-6b6b-4622-8a74-dcdcce76d6df"
      unitRef="shares">1000000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="id3e19b0628454295a5df2e06ffb156cc_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1XzQy_eb295a05-5276-4126-8c0d-becfcfa548fd"
      unitRef="shares">1000000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="i0ee4a957d6fa42aaa487b8eb033ee497_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1Xzg4_8310dff1-6289-4f87-9a2a-5c85425e877d"
      unitRef="shares">19649956</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i0ee4a957d6fa42aaa487b8eb033ee497_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1Xzg4_cf76d8e2-aafd-42b8-91c0-ee2769e73ab2"
      unitRef="shares">19649956</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="id3e19b0628454295a5df2e06ffb156cc_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1Xzk1_898a65c8-b73c-4ca7-a20b-6790b887a162"
      unitRef="shares">6801368</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="id3e19b0628454295a5df2e06ffb156cc_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1Xzk1_ead9fac9-5cdd-4c78-b68f-4bff96bc275e"
      unitRef="shares">6801368</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i3d354229e72d42648260f54eafb0c6b3_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1XzE1OQ_12aca63e-f81d-4f04-90ec-0c18b0a1398e"
      unitRef="shares">1000000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="ifa646f534f3642e4847be2f9ee1dfe70_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1XzE1OQ_14cad6cc-efbe-43c9-8abf-9f09b2e5350a"
      unitRef="shares">1000000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockSharesIssued
      contextRef="ifa646f534f3642e4847be2f9ee1dfe70_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1XzIwNQ_34626c1f-8983-4cc1-abbf-2b336ffa8e93"
      unitRef="shares">30592870</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="ifa646f534f3642e4847be2f9ee1dfe70_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1XzIwNQ_97a203a8-2423-43f5-ac44-c269995dc0f7"
      unitRef="shares">30592870</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockSharesIssued
      contextRef="i3d354229e72d42648260f54eafb0c6b3_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1XzIxMg_6da5a364-23a6-4d2f-b34e-202fc86029f8"
      unitRef="shares">42186774</us-gaap:CommonStockSharesIssued>
    <us-gaap:CommonStockSharesOutstanding
      contextRef="i3d354229e72d42648260f54eafb0c6b3_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMC0xLTEtMC90ZXh0cmVnaW9uOjI3YWJlMWU0Y2E4YTQ1OTViYzIwOWM0MjY3YWFhMjI1XzIxMg_ff397e3b-3f3d-4b9f-adb7-18a86dbad734"
      unitRef="shares">42186774</us-gaap:CommonStockSharesOutstanding>
    <us-gaap:CommonStockValue
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMS0xLTEtMA_1bd4447d-b476-483b-8f6a-3a70c6e6c59c"
      unitRef="usd">6000</us-gaap:CommonStockValue>
    <us-gaap:CommonStockValue
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjUtMy0xLTEtMA_d7e3d57f-a072-4787-bcfe-3b6e3515504c"
      unitRef="usd">6000</us-gaap:CommonStockValue>
    <us-gaap:TreasuryStockShares
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjYtMC0xLTEtMC90ZXh0cmVnaW9uOjYyOWYyNjVlNmMzNjQ5Mjg4N2M2MTRlNzM4YzFhZWUzXzMw_fe596f8f-92a1-458f-9a87-433b94b7d068"
      unitRef="shares">3140437</us-gaap:TreasuryStockShares>
    <us-gaap:TreasuryStockShares
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjYtMC0xLTEtMC90ZXh0cmVnaW9uOjYyOWYyNjVlNmMzNjQ5Mjg4N2M2MTRlNzM4YzFhZWUzXzM3_320f2dec-44ae-4997-a260-c2ba92ce8360"
      unitRef="shares">3139295</us-gaap:TreasuryStockShares>
    <us-gaap:TreasuryStockValue
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjYtMS0xLTEtMA_2796db85-5782-4661-806e-b07b0101aae5"
      unitRef="usd">11486000</us-gaap:TreasuryStockValue>
    <us-gaap:TreasuryStockValue
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjYtMy0xLTEtMA_7fa94d41-c092-4843-8167-6594fee5fa77"
      unitRef="usd">11434000</us-gaap:TreasuryStockValue>
    <us-gaap:AdditionalPaidInCapital
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjctMS0xLTEtMA_ff3d5003-a455-4957-a457-703be1983678"
      unitRef="usd">156031000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AdditionalPaidInCapital
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjctMy0xLTEtMA_7b0f4494-951e-4021-ba0e-490129a61b62"
      unitRef="usd">144163000</us-gaap:AdditionalPaidInCapital>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjgtMS0xLTEtMA_409d33c9-dde5-4a52-870a-403d5362f44f"
      unitRef="usd">0</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjgtMy0xLTEtMA_ce2ae6c0-8e45-44ea-af68-243287653cbf"
      unitRef="usd">1000</us-gaap:AccumulatedOtherComprehensiveIncomeLossNetOfTax>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjktMS0xLTEtMA_f3ea3151-5c52-457c-b5fe-2ad84b9e0f81"
      unitRef="usd">57530000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:RetainedEarningsAccumulatedDeficit
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMjktMy0xLTEtMA_3a42b8a5-4e09-4484-a5a9-0e8cfd772527"
      unitRef="usd">42691000</us-gaap:RetainedEarningsAccumulatedDeficit>
    <us-gaap:StockholdersEquity
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMzAtMS0xLTEtMA_d6713ee4-7985-4dad-a9d7-5eb94c951167"
      unitRef="usd">202081000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMzAtMy0xLTEtMA_9757e4d5-dbd6-43c9-ac4c-264b81cd6108"
      unitRef="usd">175427000</us-gaap:StockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMzEtMS0xLTEtMA_9ef94e79-adad-4220-ae8f-4f09cae2efca"
      unitRef="usd">383778000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:LiabilitiesAndStockholdersEquity
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xNi9mcmFnOjE3YzVhNjUyYmVkNTQyMGU5ZTI5ZThkNTZkZjk3MGY5L3RhYmxlOmVhNGU5YzU3YmViODQ0NjZiNTQxNGZkMjE4OTIzOTc1L3RhYmxlcmFuZ2U6ZWE0ZTljNTdiZWI4NDQ2NmI1NDE0ZmQyMTg5MjM5NzVfMzEtMy0xLTEtMA_e388263b-d53e-4daf-a55f-e5c0447b6b8a"
      unitRef="usd">371246000</us-gaap:LiabilitiesAndStockholdersEquity>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMy0xLTEtMS0w_1bb8b763-eb63-471b-9cae-97c18bdbc9e6"
      unitRef="usd">49658000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMy0zLTEtMS0w_e1e54a7c-b57a-45e8-9619-a914d726151b"
      unitRef="usd">26361000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMy00LTEtMS0yMDI_17e1a318-754f-4fa8-88db-cbd7381db0af"
      unitRef="usd">93266000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMy02LTEtMS0yMDI_7047b1f3-6e5d-4de1-99a6-9e4f9e5703e8"
      unitRef="usd">54709000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfNC0xLTEtMS0w_d7792466-7aea-406b-8843-0ff3c3d7c3fe"
      unitRef="usd">13088000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfNC0zLTEtMS0w_f7624e5f-ae8d-4032-8e19-91ce0338e702"
      unitRef="usd">9189000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfNC00LTEtMS0yMDI_9f58dcda-46dd-44ec-9194-02a2421c114e"
      unitRef="usd">25388000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:CostOfGoodsAndServicesSold
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfNC02LTEtMS0yMDI_7c30361a-0abb-4cfa-b6f6-deeff66fdb7c"
      unitRef="usd">19245000</us-gaap:CostOfGoodsAndServicesSold>
    <us-gaap:GrossProfit
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfNS0xLTEtMS0w_c8528476-dedd-4a29-b797-ec75d1e94a01"
      unitRef="usd">36570000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfNS0zLTEtMS0w_70824d13-4723-4d2f-bc53-28917b3f6bcf"
      unitRef="usd">17172000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfNS00LTEtMS0yMzY_967af392-daf3-4127-98a6-131805af53e7"
      unitRef="usd">67878000</us-gaap:GrossProfit>
    <us-gaap:GrossProfit
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfNS03LTEtMS02NTk_919730bd-5e31-4c1a-93a8-28daa1f67df6"
      unitRef="usd">35464000</us-gaap:GrossProfit>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfOC0xLTEtMS0w_a82a0772-fe92-468b-a0f1-a2d571a2dddb"
      unitRef="usd">3860000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfOC0zLTEtMS0w_fb8c00ad-67fd-4991-b65a-b05da3aa96b9"
      unitRef="usd">2971000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfOC00LTEtMS0yMDQ_bec5053b-aa4c-427d-a138-de5165c70295"
      unitRef="usd">7599000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:ResearchAndDevelopmentExpense
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfOC02LTEtMS0yMDQ_bb77b746-34d3-4fd0-b485-2b883d26eff8"
      unitRef="usd">5890000</us-gaap:ResearchAndDevelopmentExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfOS0xLTEtMS0w_70f0b8e8-4e9c-4316-aa2c-438312b8b7e2"
      unitRef="usd">13997000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfOS0zLTEtMS0w_9de8ecdf-3d45-45f1-9f98-8d1d7d04d1f3"
      unitRef="usd">9236000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfOS00LTEtMS0yMDQ_31b38d0c-e571-465d-8ca9-fbca97e46451"
      unitRef="usd">26786000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:SellingAndMarketingExpense
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfOS02LTEtMS0yMDQ_ec3e748f-091a-41ca-85ba-6dbdae49bdfe"
      unitRef="usd">19231000</us-gaap:SellingAndMarketingExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTAtMS0xLTEtMA_0488fe88-5f6a-43a2-beea-a55768877e79"
      unitRef="usd">8580000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTAtMy0xLTEtMA_87d25c25-6ab8-41b7-a659-61516257ef89"
      unitRef="usd">4236000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTAtNC0xLTEtMjA0_d66c7e85-fe91-407e-9377-4808c9070abb"
      unitRef="usd">16719000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:GeneralAndAdministrativeExpense
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTAtNi0xLTEtMjA0_d88188ad-bffc-4f2d-9000-210840641040"
      unitRef="usd">8584000</us-gaap:GeneralAndAdministrativeExpense>
    <us-gaap:OperatingExpenses
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTEtMS0xLTEtMA_60f8fa8e-1498-4733-b45f-22c4ea4e55ba"
      unitRef="usd">26437000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTEtMy0xLTEtMA_117d3032-813b-4637-8a50-7d837f1a5eee"
      unitRef="usd">16443000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTEtNS0xLTEtNjU5_ddd19af0-2517-4c2e-981b-ffaa8f33cebe"
      unitRef="usd">51104000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingExpenses
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTEtNy0xLTEtNjU5_9e485884-915d-4b31-a459-33e5d0ea08cd"
      unitRef="usd">33705000</us-gaap:OperatingExpenses>
    <us-gaap:OperatingIncomeLoss
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTItMS0xLTEtMA_d97fc68f-6cd7-4d2d-a5d5-4a0faeba6ff0"
      unitRef="usd">10133000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTItMy0xLTEtMA_6ca0b70b-d5b3-4b0e-8ddf-d99d9a667170"
      unitRef="usd">729000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTItNS0xLTEtNjU5_d3912717-09bb-44bf-af34-ce71cf66f545"
      unitRef="usd">16774000</us-gaap:OperatingIncomeLoss>
    <us-gaap:OperatingIncomeLoss
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTItNy0xLTEtNjU5_35d11465-0e18-4876-87d2-cf5d0066659e"
      unitRef="usd">1759000</us-gaap:OperatingIncomeLoss>
    <us-gaap:InvestmentIncomeInterest
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTMtMS0xLTEtMA_f9606178-e6c1-4ad6-8fab-3898dcfcd554"
      unitRef="usd">67000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTMtMy0xLTEtMA_15c3d23d-c4a9-47ce-a0e2-c29c48fe9c41"
      unitRef="usd">132000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTMtNC0xLTEtMjA2_f2cea573-0fc0-4c7f-9d33-b9d5e494ebd2"
      unitRef="usd">129000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:InvestmentIncomeInterest
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTMtNi0xLTEtMjA2_106e2b9f-dfb6-42d5-b04c-c60716e15336"
      unitRef="usd">392000</us-gaap:InvestmentIncomeInterest>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTQtMS0xLTEtMA_e6afd80f-ed4e-449a-b2bc-8371b7feba54"
      unitRef="usd">-306000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTQtMy0xLTEtMA_317a3a56-93a5-43e0-80eb-b92f1df85281"
      unitRef="usd">-124000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTQtNC0xLTEtMjA2_86ba076f-3340-4859-809d-b45b654504ad"
      unitRef="usd">-168000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:OtherNonoperatingIncomeExpense
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTQtNi0xLTEtMjA2_852aaa32-c241-4bdd-a325-292f79756f5e"
      unitRef="usd">-109000</us-gaap:OtherNonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTUtMS0xLTEtMA_397e3cda-5c89-4882-9a6f-6643136c336b"
      unitRef="usd">-239000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTUtMy0xLTEtMA_149db707-871a-4bcb-9104-0febcecd05ae"
      unitRef="usd">8000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTUtNS0xLTEtNjU5_90adc423-0bb5-4a8c-8168-1336b86579b8"
      unitRef="usd">-39000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:NonoperatingIncomeExpense
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTUtNy0xLTEtNjU5_15d08547-bbff-4d62-967b-e5b0a288df10"
      unitRef="usd">283000</us-gaap:NonoperatingIncomeExpense>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTYtMS0xLTEtMA_b23a0216-f518-4ba7-9350-a066a50c02cd"
      unitRef="usd">9894000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTYtMy0xLTEtMA_60789dcf-69c7-4378-999d-e2908ed30e58"
      unitRef="usd">737000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTYtNS0xLTEtNjU5_f6a06d7a-0785-43e6-a49a-8d468afde102"
      unitRef="usd">16735000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTYtNy0xLTEtNjU5_af163afc-d3f8-4ff7-b270-9fc2b0edb6a7"
      unitRef="usd">2042000</us-gaap:IncomeLossFromContinuingOperationsBeforeIncomeTaxesExtraordinaryItemsNoncontrollingInterest>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTctMS0xLTEtMA_7f87be17-78aa-405d-a6c3-94f6efc7a430"
      unitRef="usd">-27000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTctMy0xLTEtMA_f9debba2-1fa3-4128-bbb3-1fce57f844d9"
      unitRef="usd">84000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTctNC0xLTEtMjA5_7d71fc4f-8967-478b-8428-123cbe8b962a"
      unitRef="usd">1896000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTctNi0xLTEtMjA5_e006a5f8-059f-4b4b-b467-4aebbe2be735"
      unitRef="usd">483000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:NetIncomeLoss
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTgtMS0xLTEtMA_d315792d-5de4-4b50-962b-4fbb896da050"
      unitRef="usd">9921000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTgtMy0xLTEtMA_3dd1be7e-7520-4413-a3f5-460bc4f8c510"
      unitRef="usd">653000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTgtNS0xLTEtNjU5_8ebe40b1-5097-4d86-8f04-9c8f91f857ed"
      unitRef="usd">14839000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMTgtNy0xLTEtNjU5_8b49af24-3579-498d-8090-258656dbfad8"
      unitRef="usd">1559000</us-gaap:NetIncomeLoss>
    <us-gaap:EarningsPerShareBasic
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjAtMS0xLTEtMA_b45a27f8-f763-4499-a1f4-0e9cb581b7fa"
      unitRef="usdPerShare">0.20</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjAtMy0xLTEtMA_88cac735-5cb4-4c7f-a882-657228202816"
      unitRef="usdPerShare">0</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjAtNC0xLTEtMjEx_33b4d003-3a5b-47bf-adb6-9d91b802df08"
      unitRef="usdPerShare">0.30</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjAtNi0xLTEtMjE3_7b25510d-5fdb-4d10-b01c-dda5920b39ff"
      unitRef="usdPerShare">0</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjEtMS0xLTEtMA_d9a61446-297e-4d64-8698-498bdf46ddce"
      unitRef="usdPerShare">0.18</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjEtMy0xLTEtMA_18014175-aa74-4b42-b43a-433bb403db5a"
      unitRef="usdPerShare">0</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjEtNC0xLTEtMjE0_fb209494-5357-42dc-a57d-86e437bfbf6c"
      unitRef="usdPerShare">0.26</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjEtNi0xLTEtMjIw_c052e235-b0f7-43cc-9c42-52b2e73729fd"
      unitRef="usdPerShare">0</us-gaap:EarningsPerShareDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjQtMS0xLTEtMA_5392f2d4-6f35-4d82-ad0e-61407e906a9e"
      unitRef="shares">49578536</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjQtMy0xLTEtMA_248f69ca-7a24-4ea5-8654-659a706764d7"
      unitRef="shares">10106560</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjQtNC0xLTEtMjIz_d772dbbf-d710-4332-b7df-8850dc96fbcf"
      unitRef="shares">49345202</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjQtNi0xLTEtMjMx_90b23e25-f065-4f21-b8c2-898e9af66f78"
      unitRef="shares">10099356</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjUtMS0xLTEtMA_ea846bb1-d540-4733-bf18-72afe5eb751c"
      unitRef="shares">56428211</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjUtMy0xLTEtMA_7cc75cfc-c508-4b75-8043-5d213f096567"
      unitRef="shares">14064502</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjUtNC0xLTEtMjI1_37060ff6-ddb1-44cf-a2f4-286604753d9a"
      unitRef="shares">56607701</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18xOS9mcmFnOjcwMThlYzkzMTg5YjRlODM5MGRhNzdlNDQzZDIzNDU0L3RhYmxlOmI0OGM5NDY5NDUyYTQyNzg4OTkxZDZhZDhhY2Q4YzQ0L3RhYmxlcmFuZ2U6YjQ4Yzk0Njk0NTJhNDI3ODg5OTFkNmFkOGFjZDhjNDRfMjUtNi0xLTEtMjI4_e4d5028e-66ed-47ce-ba0a-a4ab2f71b1fa"
      unitRef="shares">14010723</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:NetIncomeLoss
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yMi9mcmFnOmJhMGI0ZjM2NjU2ZjQ5NWI5N2JmZmRlZDZlYmU0ZTc2L3RhYmxlOjU5MDA1NDg3MTA4MzRhNWNiNjkxM2QxNDZkNWZmOWZmL3RhYmxlcmFuZ2U6NTkwMDU0ODcxMDgzNGE1Y2I2OTEzZDE0NmQ1ZmY5ZmZfMy0xLTEtMS0w_a72d15c6-3c55-4445-b4fb-3be8b0eed997"
      unitRef="usd">9921000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yMi9mcmFnOmJhMGI0ZjM2NjU2ZjQ5NWI5N2JmZmRlZDZlYmU0ZTc2L3RhYmxlOjU5MDA1NDg3MTA4MzRhNWNiNjkxM2QxNDZkNWZmOWZmL3RhYmxlcmFuZ2U6NTkwMDU0ODcxMDgzNGE1Y2I2OTEzZDE0NmQ1ZmY5ZmZfMy0zLTEtMS0w_e7cc8ab4-85b5-451a-a73a-dfbeec7d22ba"
      unitRef="usd">653000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yMi9mcmFnOmJhMGI0ZjM2NjU2ZjQ5NWI5N2JmZmRlZDZlYmU0ZTc2L3RhYmxlOjU5MDA1NDg3MTA4MzRhNWNiNjkxM2QxNDZkNWZmOWZmL3RhYmxlcmFuZ2U6NTkwMDU0ODcxMDgzNGE1Y2I2OTEzZDE0NmQ1ZmY5ZmZfMy01LTEtMS0yNjk_93dc7ab2-fa7f-47f9-a1f0-e06d22cf4650"
      unitRef="usd">14839000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yMi9mcmFnOmJhMGI0ZjM2NjU2ZjQ5NWI5N2JmZmRlZDZlYmU0ZTc2L3RhYmxlOjU5MDA1NDg3MTA4MzRhNWNiNjkxM2QxNDZkNWZmOWZmL3RhYmxlcmFuZ2U6NTkwMDU0ODcxMDgzNGE1Y2I2OTEzZDE0NmQ1ZmY5ZmZfMy03LTEtMS0yNjk_e2b2e578-c375-45ca-9313-73e466307825"
      unitRef="usd">1559000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yMi9mcmFnOmJhMGI0ZjM2NjU2ZjQ5NWI5N2JmZmRlZDZlYmU0ZTc2L3RhYmxlOjU5MDA1NDg3MTA4MzRhNWNiNjkxM2QxNDZkNWZmOWZmL3RhYmxlcmFuZ2U6NTkwMDU0ODcxMDgzNGE1Y2I2OTEzZDE0NmQ1ZmY5ZmZfNS0xLTEtMS0w_280d614e-ba24-4faa-af85-67acf74093e7"
      unitRef="usd">0</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yMi9mcmFnOmJhMGI0ZjM2NjU2ZjQ5NWI5N2JmZmRlZDZlYmU0ZTc2L3RhYmxlOjU5MDA1NDg3MTA4MzRhNWNiNjkxM2QxNDZkNWZmOWZmL3RhYmxlcmFuZ2U6NTkwMDU0ODcxMDgzNGE1Y2I2OTEzZDE0NmQ1ZmY5ZmZfNS0zLTEtMS0w_00d2b72e-ace5-4250-8759-a0ab67d09ff0"
      unitRef="usd">-17000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yMi9mcmFnOmJhMGI0ZjM2NjU2ZjQ5NWI5N2JmZmRlZDZlYmU0ZTc2L3RhYmxlOjU5MDA1NDg3MTA4MzRhNWNiNjkxM2QxNDZkNWZmOWZmL3RhYmxlcmFuZ2U6NTkwMDU0ODcxMDgzNGE1Y2I2OTEzZDE0NmQ1ZmY5ZmZfNS01LTEtMS0yNzI_145417d2-abff-409c-8916-5285f95381e5"
      unitRef="usd">-1000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yMi9mcmFnOmJhMGI0ZjM2NjU2ZjQ5NWI5N2JmZmRlZDZlYmU0ZTc2L3RhYmxlOjU5MDA1NDg3MTA4MzRhNWNiNjkxM2QxNDZkNWZmOWZmL3RhYmxlcmFuZ2U6NTkwMDU0ODcxMDgzNGE1Y2I2OTEzZDE0NmQ1ZmY5ZmZfNS03LTEtMS0yNzI_a8c16306-1426-4d56-afd1-31a72fb673ec"
      unitRef="usd">3000</us-gaap:OtherComprehensiveIncomeLossAvailableForSaleSecuritiesAdjustmentNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yMi9mcmFnOmJhMGI0ZjM2NjU2ZjQ5NWI5N2JmZmRlZDZlYmU0ZTc2L3RhYmxlOjU5MDA1NDg3MTA4MzRhNWNiNjkxM2QxNDZkNWZmOWZmL3RhYmxlcmFuZ2U6NTkwMDU0ODcxMDgzNGE1Y2I2OTEzZDE0NmQ1ZmY5ZmZfNi0xLTEtMS0w_e0d71948-5f30-44c1-ba4e-a52a9599f098"
      unitRef="usd">9921000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yMi9mcmFnOmJhMGI0ZjM2NjU2ZjQ5NWI5N2JmZmRlZDZlYmU0ZTc2L3RhYmxlOjU5MDA1NDg3MTA4MzRhNWNiNjkxM2QxNDZkNWZmOWZmL3RhYmxlcmFuZ2U6NTkwMDU0ODcxMDgzNGE1Y2I2OTEzZDE0NmQ1ZmY5ZmZfNi0zLTEtMS0w_963a57e1-2eaa-4a4b-8ed7-162b8ac0ac63"
      unitRef="usd">636000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yMi9mcmFnOmJhMGI0ZjM2NjU2ZjQ5NWI5N2JmZmRlZDZlYmU0ZTc2L3RhYmxlOjU5MDA1NDg3MTA4MzRhNWNiNjkxM2QxNDZkNWZmOWZmL3RhYmxlcmFuZ2U6NTkwMDU0ODcxMDgzNGE1Y2I2OTEzZDE0NmQ1ZmY5ZmZfNi01LTEtMS0yNzU_cfc2e538-7758-4dbf-8ae0-83eaee86b5c2"
      unitRef="usd">14838000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:ComprehensiveIncomeNetOfTax
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yMi9mcmFnOmJhMGI0ZjM2NjU2ZjQ5NWI5N2JmZmRlZDZlYmU0ZTc2L3RhYmxlOjU5MDA1NDg3MTA4MzRhNWNiNjkxM2QxNDZkNWZmOWZmL3RhYmxlcmFuZ2U6NTkwMDU0ODcxMDgzNGE1Y2I2OTEzZDE0NmQ1ZmY5ZmZfNi03LTEtMS0yNzk_13123a11-de3a-4352-aedb-1552855c8236"
      unitRef="usd">1562000</us-gaap:ComprehensiveIncomeNetOfTax>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="ia1c60efc980a4db99aeb1a529b154f85_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0xLTEtMS0zMQ_131094b3-41cd-4569-90c2-886d243ef6b6"
      unitRef="shares">0</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="ia1c60efc980a4db99aeb1a529b154f85_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0zLTEtMS0zMQ_60bc14ad-404d-4208-a38f-e6bd0ec97e85"
      unitRef="usd">0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="icf579b2a6c2c44fca37f674f7007f9e2_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy01LTEtMS0zMw_8717c458-f89d-4065-95f0-113ec673f21d"
      unitRef="shares">0</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="icf579b2a6c2c44fca37f674f7007f9e2_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy03LTEtMS0zMw_6a5dc4f2-3853-4ea1-ab9d-a0cf29049843"
      unitRef="usd">0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:SharesOutstanding
      contextRef="i23d324590ca243a7a8194a266714ba2a_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0xMC0xLTEtMzM_41bf30c6-680d-410b-8b51-e63837f98153"
      unitRef="shares">48988142</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i23d324590ca243a7a8194a266714ba2a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0xMi0xLTEtMzM_4cba57da-abf8-470b-9d5d-79e0bfb7a91e"
      unitRef="usd">6000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i9e776fcf433d4e939cba97778d4fe868_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0xNC0xLTEtMzM_487da3ea-d215-484f-a618-3ab1e0d1972a"
      unitRef="usd">-11434000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i6fc87bf7362740aea715b9558984b77e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0xNi0xLTEtMzM_fb77dc71-93c0-40c4-94e7-0767f95fb346"
      unitRef="usd">144163000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i9d2e8b1d60044e689366c4fbf696c9a4_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0xOC0xLTEtMzM_15629ddc-eebf-4916-a1d8-f55dca9022eb"
      unitRef="usd">1000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i3c3115002bc3467c9b8b8dac7fdb0b17_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0yMC0xLTEtMzM_d41d26d9-2d3d-4efa-a53b-79734aa08d3a"
      unitRef="usd">42691000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0yMi0xLTEtMTA1_adf2f3e2-25d9-48a7-9b9e-e7917fffd6f3"
      unitRef="usd">175427000</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i677988dd98ab4f66b7f2fbc824b06096_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNC0xNi0xLTEtMzU_18a6eb45-bb7e-468e-beed-502b7bcc56b5"
      unitRef="usd">3318000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="iefd6ed329e8a4fb283f51b4222ed7f4c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNC0yMi0xLTEtMTA1_b462c2b5-d65f-4bbf-a66c-e9ee5d2df0ec"
      unitRef="usd">3318000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i437fe293d9564c67b69801500730bc43_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNS0xMC0xLTEtMzg_76d591a7-71c0-4e77-bed4-222e557d9f55"
      unitRef="shares">278412</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i677988dd98ab4f66b7f2fbc824b06096_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNS0xNi0xLTEtMzU_7eef10ab-3403-4923-9d96-744070d01ac0"
      unitRef="usd">451000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="iefd6ed329e8a4fb283f51b4222ed7f4c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNS0yMi0xLTEtMTA1_ece081cf-e5ec-4c30-aafd-4ce446d58eaa"
      unitRef="usd">451000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="i437fe293d9564c67b69801500730bc43_D20210101-20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNi0xMC0xLTEtMzg_b5a1702d-4509-4483-945b-85ae62860196"
      unitRef="shares">693</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="i57f88600129440f0af62e178ff9515cf_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNi0xNC0xLTEtNDE_f4534a37-a6d7-4b8a-927c-e973666dedd4"
      unitRef="usd">27000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="iefd6ed329e8a4fb283f51b4222ed7f4c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNi0yMi0xLTEtMTA1_31c1ba37-1649-490d-bfda-802179f3d762"
      unitRef="usd">27000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i8efd8bd5b82c481c9be385bc0d6ff868_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNy0xOC0xLTEtNDQ_bc6c775a-d2ed-4144-999e-5c02ad5e3e3f"
      unitRef="usd">-1000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="iefd6ed329e8a4fb283f51b4222ed7f4c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNy0yMi0xLTEtMTA1_deb272f5-792f-45ef-a42c-957e24e69ae4"
      unitRef="usd">-1000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:NetIncomeLoss
      contextRef="i37e2e4d436604917ae03ce047d602fe8_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOC0yMC0xLTEtNDc_c2f4d5fb-9039-4eaa-9b48-2bbb56c99387"
      unitRef="usd">4918000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="iefd6ed329e8a4fb283f51b4222ed7f4c_D20210101-20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOC0yMi0xLTEtMTA1_24dc543d-0592-46a3-a6e5-e92e24cf0855"
      unitRef="usd">4918000</us-gaap:NetIncomeLoss>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="i12a6b9c8547a4bb2ab349e9e573de18e_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0xLTEtMS0w_b842600a-b3dc-48f8-9c47-1f19d498f6fa"
      unitRef="shares">0</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i12a6b9c8547a4bb2ab349e9e573de18e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0zLTEtMS0w_057d9e3b-1545-4e60-98b7-110b3a9b7b74"
      unitRef="usd">0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="ie3f97ca9e64044b899ef1eee1e72cbf8_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy01LTEtMS0w_d4982b15-f54a-41ee-8005-4fd781984911"
      unitRef="shares">0</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="ie3f97ca9e64044b899ef1eee1e72cbf8_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy03LTEtMS0w_35e5ce3a-4c5d-4721-be55-447155fd5460"
      unitRef="usd">0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:SharesOutstanding
      contextRef="i70d0c853e2224f2daa0b61d3c2fef14e_I20210331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0xMC0xLTEtMA_05573734-ef37-4f43-b03d-a01e930af9b2"
      unitRef="shares">49265861</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="i70d0c853e2224f2daa0b61d3c2fef14e_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0xMi0xLTEtMA_dc1dfffe-900b-476c-be0e-ef1f49149937"
      unitRef="usd">6000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i746e8927255c468f839aa4fca915c605_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0xNC0xLTEtMA_42ac17b0-a5d2-42c2-b3c8-2e6358ac4f29"
      unitRef="usd">-11461000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="idce6892767114e87b51424b163564cd7_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0xNi0xLTEtMA_1515738e-b99b-4d47-b5e4-9d52d8bc307c"
      unitRef="usd">147932000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="iae839d8e651f4c1aa7e499e7bfd4cc6c_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0xOC0xLTEtMA_ecd1b56d-e09e-48a5-8bc5-2f8c211122cc"
      unitRef="usd">0</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i6ffa45918c3243f093a95479491ab1cb_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0yMC0xLTEtMA_1265afc5-cb4b-44db-ba47-dec6ae6c916e"
      unitRef="usd">47609000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ie59c8ff014b742a98aa88f17af66bc92_I20210331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMy0yMi0xLTEtMA_4580f7d2-3b9b-4ecb-905c-e739535532a6"
      unitRef="usd">184086000</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="ia5c95e585b84403cad9d8d947128cb1e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNC0xNi0xLTEtMA_f0a67160-310f-449d-87fc-1c01c9d66977"
      unitRef="usd">3837000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNC0yMi0xLTEtMA_e61497de-440f-4897-b02d-fa5400fb0c53"
      unitRef="usd">3837000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i9c0ee01d3b934ef49195764e9c234c8c_D20210401-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNS0xMC0xLTEtMA_2a2fa83b-49c9-4a6c-86d9-48813f73736f"
      unitRef="shares">800426</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="ia5c95e585b84403cad9d8d947128cb1e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNS0xNi0xLTEtMA_795e6eb2-0d30-4b40-ab22-047ba74ed94b"
      unitRef="usd">1627000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNS0yMi0xLTEtMA_2b332a5c-0828-4abb-83bf-61da38b40676"
      unitRef="usd">1627000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:TreasuryStockSharesAcquired
      contextRef="i9c0ee01d3b934ef49195764e9c234c8c_D20210401-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNi0xMC0xLTEtMA_8d85b13b-2c6b-41a8-afc2-c3366397e2f2"
      unitRef="shares">449</us-gaap:TreasuryStockSharesAcquired>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="ib72e1e2e7aa14bd7b659e51083b9048b_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNi0xNC0xLTEtMA_9f1374dd-9bd9-477e-b8bd-c491e3b83504"
      unitRef="usd">25000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:TreasuryStockValueAcquiredCostMethod
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfNi0yMi0xLTEtMA_27dddcda-f8c0-4454-b79e-64748591604c"
      unitRef="usd">25000</us-gaap:TreasuryStockValueAcquiredCostMethod>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMTItMTAtMS0xLTM0Ng_fa99264d-dc6a-43bf-a65c-6c0d001097ae"
      unitRef="shares">155015</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMTItMTYtMS0xLTM2Nw_99343f6a-9083-4906-9d12-fb2faa1c908d"
      unitRef="usd">2635000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMTItMjItMS0xLTM1OQ_3a30991a-0713-4470-ad7e-98988b3bd5b2"
      unitRef="usd">2635000</us-gaap:StockIssuedDuringPeriodValueEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodSharesNewIssues
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfMTMtMTAtMS0xLTM0Ng_29574137-6046-4ed8-a384-a7e09e9c2a8d"
      unitRef="shares">21973</us-gaap:StockIssuedDuringPeriodSharesNewIssues>
    <us-gaap:NetIncomeLoss
      contextRef="i638949be7bfe4f01bd63549c2cc317b0_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOC0yMC0xLTEtMA_c0095c96-57b1-499a-8b96-0b4c5d259248"
      unitRef="usd">9921000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOC0yMi0xLTEtMA_59a0e24a-9ba2-4b2d-b8d1-c1a321e64e06"
      unitRef="usd">9921000</us-gaap:NetIncomeLoss>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="i6d18abaf3bcc44e4a6f569ebf2fd8b16_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOS0xLTEtMS0w_02567a03-be83-40a4-bc78-2e61225785e5"
      unitRef="shares">0</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i6d18abaf3bcc44e4a6f569ebf2fd8b16_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOS0zLTEtMS0w_0a58180e-86a2-4013-ba33-13a289f1e95c"
      unitRef="usd">0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="i32325df743684e89bd151c09d7303c2c_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOS01LTEtMS0w_97deb98d-6b9e-4844-82c4-61631d023738"
      unitRef="shares">0</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i32325df743684e89bd151c09d7303c2c_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOS03LTEtMS0w_0d97fa89-2ebf-4a2d-a7b9-5bfd70d7320e"
      unitRef="usd">0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:SharesOutstanding
      contextRef="id67d926bc9db44d49a056b44f7e0d88e_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOS0xMC0xLTEtMA_8d5944ae-84b5-41f6-804a-47df5b6340d4"
      unitRef="shares">50242826</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="id67d926bc9db44d49a056b44f7e0d88e_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOS0xMi0xLTEtMA_2fdea69e-979e-492d-a028-197de74241ec"
      unitRef="usd">6000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ia5a1995a0b3b4a9a8bae27f4020d8b94_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOS0xNC0xLTEtMA_8d8f5eb5-6497-417b-9126-ec7dff84f27c"
      unitRef="usd">-11486000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="id493b209c0f04881916657314077e4a5_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOS0xNi0xLTEtMA_42b1587d-70a6-490c-b157-c4d126870cc2"
      unitRef="usd">156031000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="idb83b278e858456c9360b6a8535154ae_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOS0xOC0xLTEtMA_ed2da366-5967-4b1e-a182-2b7b7f8d6094"
      unitRef="usd">0</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i7efe5f71db9047f7a44187b7c9d59208_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOS0yMC0xLTEtMA_39024478-a4fa-4acf-9e48-6ed11da7ec79"
      unitRef="usd">57530000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjY5OGRkZjE3NjAzNzQ4ZjQ5NTc2NTAwODM1YTg0Y2M0L3RhYmxlcmFuZ2U6Njk4ZGRmMTc2MDM3NDhmNDk1NzY1MDA4MzVhODRjYzRfOS0yMi0xLTEtMA_bf705f00-8d3e-48b4-9dc5-8c9ef6d3a68e"
      unitRef="usd">202081000</us-gaap:StockholdersEquity>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="i6d0d75d9bb3d4af2a0a0ca259a33ce1c_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMy0xLTEtMS0w_0d3e15b3-a125-449a-adba-28841fb4a376"
      unitRef="shares">33443969</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i6d0d75d9bb3d4af2a0a0ca259a33ce1c_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMy0zLTEtMS0w_48720fc0-f318-44fe-a43b-a8d9d2114a05"
      unitRef="usd">61216000</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="i6bf9a5af49fc4d1da67e4433eb426f98_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMy01LTEtMS0w_346994e6-858d-40ef-be78-c9e488b3eb92"
      unitRef="shares">5901863</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i6bf9a5af49fc4d1da67e4433eb426f98_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMy03LTEtMS0w_8902502f-0d22-4939-8baf-d94fa9726e02"
      unitRef="usd">19025000</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:SharesOutstanding
      contextRef="ie6ae0bb81a9746e2ba8b8f0205432492_I20191231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMy0xMC0xLTEtMA_7bf82518-242f-4c50-94e5-5638e722dc0c"
      unitRef="shares">5746216</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ie6ae0bb81a9746e2ba8b8f0205432492_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMy0xMi0xLTEtMA_63ac6388-35b1-47b8-b765-e9accc532165"
      unitRef="usd">1000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="id4bfcfb2ce954faca718527c1237cb5b_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMy0xNC0xLTEtMA_102a6c70-96ba-400e-8124-378745bd5d44"
      unitRef="usd">-11431000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i2d15bcd158e7484f9c0bec6b3e7c949e_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMy0xNi0xLTEtMA_a50222f9-aae2-4e0b-971f-75b8d3f5baa9"
      unitRef="usd">8641000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ieac94b54b7094f09aec6e0d49f88a588_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMy0xOC0xLTEtMA_51b445e3-1942-439b-b84d-ae2024f64bd6"
      unitRef="usd">6000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i62d6b89f594a4ad7b25429ef720bb443_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMy0yMC0xLTEtMA_1ffd9e7a-db4e-4da1-9e76-9ef6e5d5bd07"
      unitRef="usd">16078000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i1e08a016aab84706a069e22491b2b4aa_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMy0yMi0xLTEtMA_d7b91885-be60-4d1e-bb99-bb7531523cb1"
      unitRef="usd">13295000</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i2a697551b9ec47bfa5a5037e28dc191e_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfNC0xNi0xLTEtMA_f7a99c30-c300-420b-80be-6efc6517380a"
      unitRef="usd">503000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i7f92898d5c26420188cdc91e855a5e70_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfNC0yMi0xLTEtMA_56895ff6-e30e-453a-93d3-8e38dfc48838"
      unitRef="usd">503000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="i85ad36ed653f4cf5b31609eae9707b11_D20200101-20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfNS0xMC0xLTEtMA_f29cdf06-53d5-48e3-9875-7fd6ebda0fa9"
      unitRef="shares">58452</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i2a697551b9ec47bfa5a5037e28dc191e_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfNS0xNi0xLTEtMA_88e41141-f936-4f76-937e-62eb65cd086d"
      unitRef="usd">74000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised
      contextRef="i7f92898d5c26420188cdc91e855a5e70_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfNS0yMi0xLTEtMA_d2d5974e-b29a-4813-b7ee-03c26eed4d3d"
      unitRef="usd">74000</us-gaap:StockIssuedDuringPeriodValueStockOptionsExercised>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="ib1b77dee511e48028666791466a712d3_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfNi0xOC0xLTEtMA_b61e3ab3-e10a-4b78-b13b-380f82eef91d"
      unitRef="usd">20000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i7f92898d5c26420188cdc91e855a5e70_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfNi0yMi0xLTEtMA_25ae1fd8-7a4a-42ea-97b6-a7217bc5d802"
      unitRef="usd">20000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:NetIncomeLoss
      contextRef="i601560a880234090a3e5e0dddf087ca2_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfNy0yMC0xLTEtMA_17860d37-7c0e-4bfd-819f-658879624a75"
      unitRef="usd">904000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i7f92898d5c26420188cdc91e855a5e70_D20200101-20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfNy0yMi0xLTEtMA_648fb23e-2044-48d8-8093-822899d9b59c"
      unitRef="usd">904000</us-gaap:NetIncomeLoss>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="if50b3f5577dc4f98ab174f969f64fa70_I20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfOC0xLTEtMS0w_3a904b4a-bb14-40c7-a7dd-841754e4e9c5"
      unitRef="shares">33443969</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="if50b3f5577dc4f98ab174f969f64fa70_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfOC0zLTEtMS0w_8077a5f2-4db1-4838-945a-905fdefe286a"
      unitRef="usd">61216000</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="i93d66a43d58f43aea55525957b76f327_I20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfOC01LTEtMS0w_12f12340-6a57-4896-8eff-169bf0698270"
      unitRef="shares">5901863</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i93d66a43d58f43aea55525957b76f327_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfOC03LTEtMS0w_763cecd9-f981-4554-9842-1b0d70bdff18"
      unitRef="usd">19025000</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:SharesOutstanding
      contextRef="ib7ced4d2f8854cd99d210684515d6d98_I20200331"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfOC0xMC0xLTEtMA_c02fb81a-91a8-4918-894b-dd777eba9c76"
      unitRef="shares">5804668</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ib7ced4d2f8854cd99d210684515d6d98_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfOC0xMi0xLTEtMA_f423d628-08a3-46c9-8696-cc87162b0dca"
      unitRef="usd">1000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ic70d853dd741418496bfba4d6c3ec736_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfOC0xNC0xLTEtMA_2a920ec8-9bbd-4640-bfb6-5d1078fe5bd7"
      unitRef="usd">-11431000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i86f7604ad26a4870a417c372a1c5e119_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfOC0xNi0xLTEtMA_d6f84fc3-06de-465b-a08f-fa61b1429146"
      unitRef="usd">9218000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i9564991c152549a49f4cf78d40c9e017_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfOC0xOC0xLTEtMA_b3d67336-e395-4942-afce-a824a3090899"
      unitRef="usd">26000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ic2b2a63bf0d048b383b89902dd54d729_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfOC0yMC0xLTEtMA_12bbbef3-a29b-4f6a-a287-59359290c3c2"
      unitRef="usd">16982000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ib5194b3540a7424b94acb7755b912f09_I20200331"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfOC0yMi0xLTEtMA_0403f787-88b9-4d0a-a5e7-ef6045399da4"
      unitRef="usd">14796000</us-gaap:StockholdersEquity>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i8bb410b6cfff4d7bac1031b0e7a13561_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfOS0xNi0xLTEtNzI_19577f9d-7321-4868-848f-357f04570e4c"
      unitRef="usd">505000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfOS0yMi0xLTEtNzI_01a83b20-45f1-45df-8e7d-732e367377bf"
      unitRef="usd">505000</us-gaap:AdjustmentsToAdditionalPaidInCapitalSharebasedCompensationRequisiteServicePeriodRecognitionValue>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i3332e7a777e34e5c9cd1f4070c598a99_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTEtMTgtMS0xLTcy_460686bf-74da-4554-9c46-8b84b181dd12"
      unitRef="usd">-17000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTEtMjItMS0xLTcy_068845f3-918e-4e80-9f19-d4be16011ace"
      unitRef="usd">-17000</us-gaap:OtherComprehensiveIncomeLossNetOfTaxPortionAttributableToParent>
    <us-gaap:NetIncomeLoss
      contextRef="iad68d42daf6e4c8abf3ac373f99fd6c5_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTItMjAtMS0xLTcy_215325a5-4182-4744-ae92-7d7777c4b609"
      unitRef="usd">653000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTItMjItMS0xLTcy_9f7f58c0-f10c-4dd5-ab8d-f6bb21e17a1f"
      unitRef="usd">653000</us-gaap:NetIncomeLoss>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="ie8deba3eb79541ad9040b1e6678f5ba1_I20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTMtMS0xLTEtNzI_9619338e-3d61-43ff-ade9-f3fcc31b59f1"
      unitRef="shares">33443969</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="ie8deba3eb79541ad9040b1e6678f5ba1_I20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTMtMy0xLTEtNzI_1b0d8a33-adc8-4f14-85b3-74a651e5f549"
      unitRef="usd">61216000</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:TemporaryEquitySharesOutstanding
      contextRef="i05df435d63d74f69911dca30030f0295_I20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTMtNS0xLTEtNzI_851a10ba-2d8a-4119-a881-0d3af098237c"
      unitRef="shares">5901863</us-gaap:TemporaryEquitySharesOutstanding>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i05df435d63d74f69911dca30030f0295_I20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTMtNy0xLTEtNzI_963f28af-b6ff-4538-9a76-4ab0ac1c5bed"
      unitRef="usd">19025000</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:SharesOutstanding
      contextRef="ic832207b646a46ecbb9c1721eb503349_I20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTMtMTAtMS0xLTcy_ebb1d1e7-5c0e-4ec5-9883-c9ce97b816a7"
      unitRef="shares">5804668</us-gaap:SharesOutstanding>
    <us-gaap:StockholdersEquity
      contextRef="ic832207b646a46ecbb9c1721eb503349_I20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTMtMTItMS0xLTcy_44fd05bd-1d14-438e-ab5f-84f96cf98f4d"
      unitRef="usd">1000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ifdcaec7e76bb4dcb9201fdb21753b785_I20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTMtMTQtMS0xLTcy_bbf37bb8-0c04-4f6d-b2d5-bf1fd177631b"
      unitRef="usd">-11431000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i149836741c464dde9e4f049ec48b17c3_I20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTMtMTYtMS0xLTcy_21f0822d-2a7f-4e66-a6db-089f54806046"
      unitRef="usd">9723000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="ic303992232004c07a6f9e13b48bf22fb_I20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTMtMTgtMS0xLTcy_0e997226-f5ac-4263-afed-be1231e3dfe2"
      unitRef="usd">9000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="i498da2471b9e43019c0723802bc2e8c2_I20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTMtMjAtMS0xLTcy_061a9f43-3230-4e72-a468-0e3ae8aaccf7"
      unitRef="usd">17635000</us-gaap:StockholdersEquity>
    <us-gaap:StockholdersEquity
      contextRef="id90cf55da72b469e9e327aba71b76409_I20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yNS9mcmFnOmFlZmRjN2Y4ZmRjNzRiM2NhMjBhNjQzZDU0NzE3OTRhL3RhYmxlOjg0YjNmOGE3MzA2NDQ3M2I4NjM2MGFkNzE1ZmFlMGVjL3RhYmxlcmFuZ2U6ODRiM2Y4YTczMDY0NDczYjg2MzYwYWQ3MTVmYWUwZWNfMTMtMjItMS0xLTcy_ee4eea49-3019-4cfd-a608-de73b583cf16"
      unitRef="usd">15937000</us-gaap:StockholdersEquity>
    <us-gaap:NetIncomeLoss
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfNC0xLTEtMS0w_60d5ac00-e8c0-48bd-a62e-4e99b8037ca4"
      unitRef="usd">14839000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfNC0zLTEtMS0w_8f23fd3b-5de6-4d53-bf71-dda55254025f"
      unitRef="usd">1559000</us-gaap:NetIncomeLoss>
    <us-gaap:OtherDepreciationAndAmortization
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfNi0xLTEtMS0w_ca82eab6-33eb-4a24-9ce3-086206afe303"
      unitRef="usd">9688000</us-gaap:OtherDepreciationAndAmortization>
    <us-gaap:OtherDepreciationAndAmortization
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfNi0zLTEtMS0w_a34b8711-a135-425e-ba5c-17c29c1bd22b"
      unitRef="usd">7396000</us-gaap:OtherDepreciationAndAmortization>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfNy0xLTEtMS0w_5f9f79fe-e792-47db-8724-4757d59ae3f0"
      unitRef="usd">6794000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfNy0zLTEtMS0w_501d3cda-d744-441c-9286-91574e205193"
      unitRef="usd">995000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfOC0xLTEtMS0w_c569c27b-e524-48f6-a794-de72cf7a8ef8"
      unitRef="usd">0</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:ProvisionForDoubtfulAccounts
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfOC0zLTEtMS0w_3a07c39d-4fb4-46be-9cbd-6ed1f07f167d"
      unitRef="usd">319000</us-gaap:ProvisionForDoubtfulAccounts>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfOS0xLTEtMS0w_5ddb96c4-968c-4a85-b1ef-448549715d5f"
      unitRef="usd">1258000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:DeferredIncomeTaxExpenseBenefit
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfOS0zLTEtMS0w_4c41b0f7-b8d7-41d7-b303-e912f7e0efbc"
      unitRef="usd">99000</us-gaap:DeferredIncomeTaxExpenseBenefit>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTAtMS0xLTEtMA_712ecee6-464b-4fa4-a867-5901759c8d62"
      unitRef="usd">28000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTAtMy0xLTEtMA_3b8f4ae5-e2e7-4265-a915-2f90e4d53004"
      unitRef="usd">117000</us-gaap:AccretionAmortizationOfDiscountsAndPremiumsInvestments>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTEtMS0xLTEtMA_7c44c1f1-3342-4c93-a0b5-094fb14155dc"
      unitRef="usd">-2000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:OtherNoncashIncomeExpense
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTEtMy0xLTEtMA_fed2eb4b-f799-4f7a-9b67-2c692fae5ad3"
      unitRef="usd">1000</us-gaap:OtherNoncashIncomeExpense>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTMtMS0xLTEtMA_8ca896ce-268f-4361-bc3d-fd7c7ba24f0b"
      unitRef="usd">-24083000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInAccountsReceivable
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTMtMy0xLTEtMA_c8920fbf-c9b3-456e-874c-95c637472b94"
      unitRef="usd">-25713000</us-gaap:IncreaseDecreaseInAccountsReceivable>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTQtMS0xLTEtMA_4077636e-9b51-485d-82a7-b91b18349776"
      unitRef="usd">7579000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTQtMy0xLTEtMA_1b12476d-6edf-43ec-b59d-5636d11f6cc1"
      unitRef="usd">1287000</us-gaap:IncreaseDecreaseInPrepaidDeferredExpenseAndOtherAssets>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTUtMS0xLTEtMA_df599d5a-7c85-4790-9234-ea42b800a81b"
      unitRef="usd">-15125000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccountsPayable
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTUtMy0xLTEtMA_9a391ecc-4f17-4b9e-babc-8babb2fdc1d7"
      unitRef="usd">-19485000</us-gaap:IncreaseDecreaseInAccountsPayable>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTYtMS0xLTEtMA_de62b48a-8b41-48c1-98b7-b78db3496f7d"
      unitRef="usd">-275000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInAccruedLiabilities
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTYtMy0xLTEtMA_8c45c2c6-7e00-45e5-9eb6-026e3c631605"
      unitRef="usd">-2923000</us-gaap:IncreaseDecreaseInAccruedLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTctMS0xLTEtMA_6fb8c023-b8bf-40e6-84dd-f68f07f16d2f"
      unitRef="usd">106000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTctMy0xLTEtMA_10b5c22c-3683-452e-af10-c75b97b293ad"
      unitRef="usd">-246000</us-gaap:IncreaseDecreaseInOtherNoncurrentLiabilities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTgtMS0xLTEtMA_62a64999-e705-4208-8bb8-a1fb33b55e26"
      unitRef="usd">33763000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:NetCashProvidedByUsedInOperatingActivities
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMTgtMy0xLTEtMA_fb7ae410-0a36-479f-8e23-1a2c64457b71"
      unitRef="usd">12022000</us-gaap:NetCashProvidedByUsedInOperatingActivities>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjAtMS0xLTEtMA_0bc485ce-895f-4217-9e80-c0f2f2cbec66"
      unitRef="usd">11808000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToAcquirePropertyPlantAndEquipment
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjAtMy0xLTEtMA_865913fc-9174-485a-95a0-c3aced33f5ae"
      unitRef="usd">7393000</us-gaap:PaymentsToAcquirePropertyPlantAndEquipment>
    <us-gaap:PaymentsToDevelopSoftware
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjEtMS0xLTEtMA_7ab23788-b502-4ef1-a869-5f1ea99b557d"
      unitRef="usd">4828000</us-gaap:PaymentsToDevelopSoftware>
    <us-gaap:PaymentsToDevelopSoftware
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjEtMy0xLTEtMA_8a1cdcb3-4f86-4a20-b060-4024e04368d2"
      unitRef="usd">4196000</us-gaap:PaymentsToDevelopSoftware>
    <us-gaap:PaymentsToAcquireMarketableSecurities
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjItMS0xLTEtMA_67577ec0-0cb0-48ca-802b-ec24472a79d1"
      unitRef="usd">32551000</us-gaap:PaymentsToAcquireMarketableSecurities>
    <us-gaap:PaymentsToAcquireMarketableSecurities
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjItMy0xLTEtMA_76a38de6-88f9-48c2-9558-87cdfb7c04fa"
      unitRef="usd">13413000</us-gaap:PaymentsToAcquireMarketableSecurities>
    <us-gaap:ProceedsFromSaleOfHeldToMaturitySecurities
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjMtMS0xLTEtMA_087d7a3e-6026-4f44-938a-8d34f6d9ddd7"
      unitRef="usd">0</us-gaap:ProceedsFromSaleOfHeldToMaturitySecurities>
    <us-gaap:ProceedsFromSaleOfHeldToMaturitySecurities
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjMtMy0xLTEtMA_19ca0872-2941-4aa2-abb5-a885e38945ac"
      unitRef="usd">2295000</us-gaap:ProceedsFromSaleOfHeldToMaturitySecurities>
    <us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjQtMS0xLTEtMA_13d14b39-f3a3-4441-9dea-c775ba3f7d29"
      unitRef="usd">21000000</us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities>
    <us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjQtMy0xLTEtMA_ce6d0a59-35df-43ef-b608-fa191b770511"
      unitRef="usd">18450000</us-gaap:ProceedsFromSaleAndMaturityOfMarketableSecurities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjUtMS0xLTEtMA_d969de27-ccfe-4cc0-bf97-1e783d3025ec"
      unitRef="usd">-28187000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:NetCashProvidedByUsedInInvestingActivities
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjUtMy0xLTEtMA_44d47673-7dee-4fe5-ac3f-6353e1c43a39"
      unitRef="usd">-4257000</us-gaap:NetCashProvidedByUsedInInvestingActivities>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjctMS0xLTEtMA_257c9f6a-f047-41f6-8958-591de2440ac8"
      unitRef="usd">2635000</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromIssuanceOfCommonStock
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjctMy0xLTEtMA_ba050a98-21cb-4e52-b72e-8410c682e5f9"
      unitRef="usd">0</us-gaap:ProceedsFromIssuanceOfCommonStock>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjgtMS0xLTEtMA_199d7ab5-041e-4eee-a5b6-c52b11174048"
      unitRef="usd">2078000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:ProceedsFromStockOptionsExercised
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjgtMy0xLTEtMA_43552b10-22cf-4987-ae7f-436661b0f8a9"
      unitRef="usd">74000</us-gaap:ProceedsFromStockOptionsExercised>
    <us-gaap:PaymentsOfStockIssuanceCosts
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzAtMS0xLTEtMTA5MQ_bcb16a89-08fa-44a6-9fa8-96dfe6208d23"
      unitRef="usd">805000</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:PaymentsOfStockIssuanceCosts
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzAtMy0xLTEtMTA5MQ_ac348d1a-716c-4597-abd8-a9b0c84fafda"
      unitRef="usd">0</us-gaap:PaymentsOfStockIssuanceCosts>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjktMS0xLTEtMA_de0d9b85-099a-4b7f-9991-759c8386ed2d"
      unitRef="usd">52000</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:PaymentsForRepurchaseOfCommonStock
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMjktMy0xLTEtMA_e97a9153-b0b5-44b4-8a57-3e28bcc10860"
      unitRef="usd">0</us-gaap:PaymentsForRepurchaseOfCommonStock>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzAtMS0xLTEtMA_bdc2597c-a3b0-450f-af84-a51b4040830c"
      unitRef="usd">3856000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:NetCashProvidedByUsedInFinancingActivities
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzAtMy0xLTEtMA_ff9a1bc1-acee-47cf-820b-6dee3397eb1d"
      unitRef="usd">74000</us-gaap:NetCashProvidedByUsedInFinancingActivities>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzEtMS0xLTEtMA_97311303-c5c6-485c-bbf5-5beb1b5f3459"
      unitRef="usd">9432000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzEtMy0xLTEtMA_06513010-889a-446e-8dee-a85e34f05fd6"
      unitRef="usd">7839000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalentsPeriodIncreaseDecreaseIncludingExchangeRateEffect>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzItMS0xLTEtMA_265fa7f1-3cfa-4c0f-8e0a-49b95193afe7"
      unitRef="usd">81188000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i1e08a016aab84706a069e22491b2b4aa_I20191231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzItMy0xLTEtMA_b33e0d43-9255-473c-82bd-5d96c8985bcd"
      unitRef="usd">34250000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzMtMS0xLTEtMA_70049ee8-2380-417e-a787-d5ac5ebdf05a"
      unitRef="usd">90620000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents
      contextRef="id90cf55da72b469e9e327aba71b76409_I20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzMtMy0xLTEtMA_dddeca2a-c49f-476c-86d3-be913f98ea67"
      unitRef="usd">42089000</us-gaap:CashCashEquivalentsRestrictedCashAndRestrictedCashEquivalents>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzUtMS0xLTEtMA_e74ad831-1b1d-4369-b394-8e5da4248333"
      unitRef="usd">3588000</us-gaap:IncomeTaxesPaidNet>
    <us-gaap:IncomeTaxesPaidNet
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzUtMy0xLTEtMA_30f7b83b-1c6e-4c59-93c5-6f71486ed4d0"
      unitRef="usd">210000</us-gaap:IncomeTaxesPaidNet>
    <pubm:StockBasedCompensationCapitalizedAsInternalUseSoftwareCosts
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzctMS0xLTEtMA_1414873e-3e7c-48ed-b4b7-15b58a191d7e"
      unitRef="usd">361000</pubm:StockBasedCompensationCapitalizedAsInternalUseSoftwareCosts>
    <pubm:StockBasedCompensationCapitalizedAsInternalUseSoftwareCosts
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzctMy0xLTEtMA_dd9ce49a-51f8-47df-bf26-2b410f17a9b0"
      unitRef="usd">13000</pubm:StockBasedCompensationCapitalizedAsInternalUseSoftwareCosts>
    <pubm:PropertyAndEquipmentIncludedInAccountsPayableAndAccruedExpenses
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzgtMS0xLTEtMA_451e7bb1-4b3d-4ae1-8e38-78a9badf9425"
      unitRef="usd">1728000</pubm:PropertyAndEquipmentIncludedInAccountsPayableAndAccruedExpenses>
    <pubm:PropertyAndEquipmentIncludedInAccountsPayableAndAccruedExpenses
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzgtMy0xLTEtMA_63f7f657-111c-4c7d-a4b5-9c02c5ac1760"
      unitRef="usd">1959000</pubm:PropertyAndEquipmentIncludedInAccountsPayableAndAccruedExpenses>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzktMS0xLTEtMA_293cc29a-629d-43be-ba31-18a6c29f49b8"
      unitRef="usd">705000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:CapitalExpendituresIncurredButNotYetPaid
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18yOC9mcmFnOmNhYWYwNmE0MDg4ZTQ1ODM5NGE1NGIzNmI4ZTQzYmIyL3RhYmxlOjUzOTczNjdmNDRkODQ1ZTBhOWQwNWUyYzZhNGZkM2ZjL3RhYmxlcmFuZ2U6NTM5NzM2N2Y0NGQ4NDVlMGE5ZDA1ZTJjNmE0ZmQzZmNfMzktMy0xLTEtMA_e1c95de0-2150-44d1-a6fa-4563d2ddec52"
      unitRef="usd">458000</us-gaap:CapitalExpendituresIncurredButNotYetPaid>
    <us-gaap:NatureOfOperations
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNC9mcmFnOmM2Y2ZiYmE3MzJlNDRhOTU5YzFkZDJiMTdmY2ZhZTNlL3RleHRyZWdpb246YzZjZmJiYTczMmU0NGE5NTljMWRkMmIxN2ZjZmFlM2VfNTg2_6dfba19d-aa97-4261-a01a-17cc1cdbcd47">Organization and Description of BusinessPubMatic, Inc. and subsidiaries (&#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 advertising leveraging an efficient design, machine learning, and data processing capabilities, with customer alignment and global omnichannel reach.</us-gaap:NatureOfOperations>
    <us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfMTE5ODQ_4e8c3af7-ddee-4139-8880-f148870a714e">Basis of Presentation and Summary of Significant Accounting Policies&lt;div style="margin-bottom: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;Fiscal Year&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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&#160;31, and its fiscal quarters end on March 31, June 30, September 30, and December 31. References to fiscal year 2021, for example, refer to the fiscal year ended December&#160;31, 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Unaudited Interim Condensed Consolidated Financial Information&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 unaudited condensed consolidated financial statements include the accounts of PubMatic, Inc. and its wholly owned subsidiaries, and have been prepared in accordance with generally accepted accounting principles in the United States (&#x201c;GAAP&#x201d;) and following the requirements of the Securities and Exchange Commission (&#x201c;SEC&#x201d;) for interim reporting. As permitted under those rules, certain footnotes or other financial information that are normally required by GAAP can be condensed or omitted. These financial statements have been prepared on the same basis as the Company&#x2019;s annual financial statements and, in the opinion of management, reflect all adjustments, consisting only of normal recurring adjustments, which are necessary for the fair statement of the Company&#x2019;s financial information. These interim results are not necessarily indicative of the results to be expected for the fiscal year ending December&#160;31, 2021 or for any other interim period or for any other future year. The accompanying unaudited condensed consolidated financial statements and related financial information should be read in conjunction with the audited consolidated financial statements and the related notes contained in the Company&#x2019;s Annual Report on Form 10-K for the fiscal year ended December&#160;31, 2020, as filed with the SEC on March 26, 2021 (the &#x201c;Annual Report&#x201d;).&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Basis of Presentation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 condensed consolidated financial statements have been prepared in accordance with GAAP. The accompanying condensed consolidated financial statements include the accounts of PubMatic, Inc. and its wholly-owned subsidiaries. All intercompany accounts and transactions have been eliminated in consolidation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Initial Public Offering&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 registration statement on Form S-1 (the &#x201c;IPO Registration Statement&#x201d;) related to its initial public offering (&#x201c;IPO&#x201d;) was declared effective on December 8, 2020, and the Company&#x2019;s Class A common stock began trading on the Nasdaq Global Market on December 9, 2020. On December 11, 2020, the Company completed its IPO, in which the Company sold 2,655,000 shares of Class A common stock at a price to the public of $20.00 per share. The Company received aggregate net proceeds of $45.0 million after deducting underwriting discounts, commissions and offering costs. In connection with the IPO, all of the shares of convertible preferred stock outstanding automatically converted into an aggregate of 33,443,969 shares of Class B common stock.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 offering costs consisted primarily of accounting, legal, and other fees related to the IPO. Prior to the IPO, all deferred offering costs were capitalized in prepaid expenses and other current assets in the condensed consolidated balance sheets. Upon consummation of the IPO, the $4.4 million of deferred offering costs were &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;reclassified to stockholders&#x2019; equity and recorded against the proceeds from the offering. No offering costs were capitalized as of June&#160;30, 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Use of Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 condensed 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-bottom:9.5pt;text-indent: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 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. Due to the inherent uncertainty involved in making assumptions and estimates, events and changes in circumstances arising after June&#160;30, 2021, including those resulting from the impacts of the COVID-19 pandemic, 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-bottom: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-bottom:9.5pt;text-indent: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 and measures compensation expense for all stock-based payment awards granted to employees, directors, and nonemployees, including stock options, restricted stock units (&#x201c;RSUs&#x201d;), and the employee stock purchase plan (the &#x201c;ESPP&#x201d;) based on the fair value of the awards on the date of grant. The fair value of stock options and shares of common stock to be issued under the ESPP is estimated using the Black Scholes option pricing model. The grant date fair value of RSUs is based on the closing market price of the Company&#x2019;s Class A common stock on the date of grant. The Black Scholes option pricing model is impacted by the fair value of the Company&#x2019;s common stock, as well as changes in assumptions regarding a number of highly complex and subjective variables. These variables include, but are not limited to, the expected common stock price volatility over the term of the stock options, the expected term of the stock options, risk-free interest rates, and the expected dividend yield.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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 9 &#x2014; &#x201c;Stockholders&#x2019; Equity and Stock Option Plans.&#x201d;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Concentration of Revenue and Accounts Receivable&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 three months ended June 30, 2021 and 2020, one publisher represented 17% and 21%, respectively, and 18% and 22% for the six months ended June 30, 2021 and 2020, respectively, of the Company&#x2019;s revenue. As of June&#160;30, 2021, three buyers accounted for 33%, 13% and 11%, respectively, of accounts receivable. As of December&#160;31, 2020, four buyers accounted for 33%, 14%, 13% and 11%, respectively, of accounts receivable.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Net Income Per Share Attributable to Common Stockholders&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 considers the preferred stock as participating securities. Holders of participating securities do not have a contractual obligation to share in the Company&#x2019;s losses. In accordance with the two-class method, earnings allocated to these participating securities and the related number of outstanding shares of the participating securities have been excluded from the computation of basic and diluted net income per share attributable to common stockholders. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 the Company&#x2019;s Class A and Class B common stock outstanding.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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-bottom: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;Recently Adopted Accounting Pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2019 the FASB issued ASU 2019-12&#x2014;Simplifying the Accounting for Income Taxes&#160;(ASU 2019-12). ASU 2019-12 simplifies the accounting for income taxes by removing certain exceptions to general principles in Topic 740 and clarifies and amends existing guidance for clarity and consistent application. Effective on January 1, 2021, the Company adopted this standard, which did not have a material impact on the condensed consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Recent Accounting Pronouncements Not Yet Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 Jumpstart Our Business Startups Act (the &#x201c;JOBS Act&#x201d;), the Company meets the definition of an emerging growth company (&#x201c;EGC&#x201d;) and can delay adopting new or revised accounting standards issued subsequent to the enactment of the JOBS Act until such time as those standards apply to private companies. The Company has elected to use this extended transition period under the JOBS Act until such time the Company is no longer considered to be an EGC. The adoption dates discussed below reflect this election. The Company expects to become a large accelerated filer on the last day of its fiscal year 2021 and will no longer qualify as an EGC and plans to revise the adoption dates accordingly in a subsequent filing.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 February 2016, FASB issued ASU No. 2016-02, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Leases&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;, which requires an entity to recognize right-of-use assets and lease liabilities on its balance sheet and disclose key information about leasing arrangements. The guidance offers specific accounting guidance for a lessee, lessor, and sale and leaseback transactions. Lessees and lessors are required to disclose qualitative and quantitative information about leasing arrangements to enable a user of the financial statements to assess the amount, timing, and uncertainty of cash flows arising from leases. Leases will be classified as either finance or operating, with the classification affecting the pattern of expense recognition in the income statement. The guidance is effective for the Company for fiscal year 2022 and requires a modified retrospective adoption, with early adoption permitted. Although the Company is currently evaluating the impact of this guidance on its condensed consolidated financial statements, the Company expects that most of its operating lease commitments will be recognized as operating lease liabilities and right-of-use assets upon adoption of the new guidance. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In June 2016, FASB issued ASU No. 2016-13, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Financial Instruments &#x2013; Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments&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; (ASU 2016-13). This update changes the accounting for recognizing impairments of financial assets, such that credit losses for certain types of financial instruments will be estimated based on expected losses. The update also modifies the impairment models for available-for-sale debt securities and for purchased financial assets with credit deterioration since their origination. ASU 2016-13 is effective for the Company in fiscal year 2023. Early adoption is permitted after for periods beginning after December 15, 2018. The Company has not yet determined the potential effects of this new accounting guidance on its condensed consolidated financial statements. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 January 2017, the FASB issued ASU No. 2017-04, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Intangibles&#x2014;Goodwill and Other: Simplifying the Test for Goodwill Impairment&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; (ASU 2017-04). ASU 2017-04 eliminates Step 2 from the goodwill impairment test which measures a goodwill impairment loss by comparing the implied fair value of a reporting unit&#x2019;s goodwill with the carrying amount of that goodwill. Under ASU 2017-04, an entity should perform its annual or interim goodwill impairment test by comparing the fair value of the reporting unit with its carrying amount, and should recognize an impairment loss for the amount by which the carrying amount exceeds the reporting unit&#x2019;s fair value, with the loss not exceeding the total amount of goodwill allocated to that reporting unit. ASU 2017-04 will be effective for the Company beginning on January 1, 2023. Early adoption is permitted for interim or annual goodwill impairment tests performed after January 1, 2017. At adoption, this update will require a prospective approach. The Company is currently evaluating the impact of adopting this new accounting guidance on its condensed consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;</us-gaap:BasisOfPresentationAndSignificantAccountingPoliciesTextBlock>
    <us-gaap:BasisOfAccountingPolicyPolicyTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfMTE5ODU_26f79031-372c-4759-b6e9-ddd00814e696">&lt;div style="margin-bottom: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;Basis of Presentation&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 condensed consolidated financial statements have been prepared in accordance with GAAP. The accompanying condensed consolidated financial statements include the accounts of PubMatic, Inc. and its wholly-owned subsidiaries. All intercompany accounts and transactions have been eliminated in consolidation.&lt;/span&gt;&lt;/div&gt;</us-gaap:BasisOfAccountingPolicyPolicyTextBlock>
    <us-gaap:SaleOfStockNumberOfSharesIssuedInTransaction
      contextRef="i00c628bc475c4af2b8218be0f48a4468_D20201211-20201211"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfMjM5OA_1018f4c4-ae62-4016-bf19-944a438080e6"
      unitRef="shares">2655000</us-gaap:SaleOfStockNumberOfSharesIssuedInTransaction>
    <us-gaap:SaleOfStockPricePerShare
      contextRef="i315c70b20331411e889bf05db04885b4_I20201211"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfMjQ2MA_d6a1777e-12d1-4728-949c-59851056789c"
      unitRef="usdPerShare">20.00</us-gaap:SaleOfStockPricePerShare>
    <us-gaap:SaleOfStockConsiderationReceivedOnTransaction
      contextRef="i00c628bc475c4af2b8218be0f48a4468_D20201211-20201211"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfMjUyMQ_057a6b63-beac-4d0e-b326-b3836c36f5da"
      unitRef="usd">45000000.0</us-gaap:SaleOfStockConsiderationReceivedOnTransaction>
    <us-gaap:ConvertiblePreferredStockSharesIssuedUponConversion
      contextRef="i42c636af09694c408667ad193b645fde_I20201211"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfMjczMA_fd18d40c-4cbd-4b88-98b3-251a46dae8f0"
      unitRef="shares">33443969</us-gaap:ConvertiblePreferredStockSharesIssuedUponConversion>
    <us-gaap:DeferredOfferingCosts
      contextRef="i315c70b20331411e889bf05db04885b4_I20201211"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfMzA1NA_7d402b9b-47ba-4b3e-b5b4-1b32db8cd3e8"
      unitRef="usd">4400000</us-gaap:DeferredOfferingCosts>
    <us-gaap:UseOfEstimates
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfMTE5ODA_40189df7-c15c-49b8-ba56-760b68e2bbf2">&lt;div style="margin-bottom: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;Use of Estimates&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 condensed 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-bottom:9.5pt;text-indent: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 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. Due to the inherent uncertainty involved in making assumptions and estimates, events and changes in circumstances arising after June&#160;30, 2021, including those resulting from the impacts of the COVID-19 pandemic, may result in actual outcomes that differ from those contemplated by the Company&#x2019;s assumptions and estimates.&lt;/span&gt;&lt;/div&gt;</us-gaap:UseOfEstimates>
    <us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfMTE5ODY_4625628f-8ea4-41b1-aa2f-816d85d7ca96">&lt;div style="margin-bottom: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-bottom:9.5pt;text-indent: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 and measures compensation expense for all stock-based payment awards granted to employees, directors, and nonemployees, including stock options, restricted stock units (&#x201c;RSUs&#x201d;), and the employee stock purchase plan (the &#x201c;ESPP&#x201d;) based on the fair value of the awards on the date of grant. The fair value of stock options and shares of common stock to be issued under the ESPP is estimated using the Black Scholes option pricing model. The grant date fair value of RSUs is based on the closing market price of the Company&#x2019;s Class A common stock on the date of grant. The Black Scholes option pricing model is impacted by the fair value of the Company&#x2019;s common stock, as well as changes in assumptions regarding a number of highly complex and subjective variables. These variables include, but are not limited to, the expected common stock price volatility over the term of the stock options, the expected term of the stock options, risk-free interest rates, and the expected dividend yield.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;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 9 &#x2014; &#x201c;Stockholders&#x2019; Equity and Stock Option Plans.&#x201d;&lt;/span&gt;&lt;/div&gt;</us-gaap:ShareBasedCompensationOptionAndIncentivePlansPolicy>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="id2562d5e67fc47c6bd25b95a86e5b2f9_D20210401-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfNTcxNQ_9dd94f52-ea3b-46a0-8a6a-69ef1c12adfe"
      unitRef="number">0.17</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i57521b0ac40f469e8dd63ba32c763838_D20200401-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfNTcyMg_431b0182-521c-4bd3-8907-7f805bd007e0"
      unitRef="number">0.21</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i1937eb0ad37c48a39c0661764a5119c9_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfMTA5OTUxMTYzOTc3Mg_78ac3d12-f364-4684-985b-5209e7b01a53"
      unitRef="number">0.18</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i1d8a52d8f31343538c45722c4e36f7fa_D20200101-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfMTA5OTUxMTYzOTc2OA_65fcd3a6-0ff4-4829-822b-faa7cc5cb741"
      unitRef="number">0.22</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i23cc5f014fb645b9a01f26df490751d9_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfNTgwMw_601ce070-f01a-449c-af4d-9b701ec79526"
      unitRef="number">0.33</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i01f877bf0b2740aeba959c8abce1d349_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfNTgwNw_6b7d4e8b-6dd5-4fa4-bd0d-5bf1efd0c308"
      unitRef="number">0.13</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i6fa75195d2304b189090bda00a57e697_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfNTgxNA_573ed4cd-b608-4b37-b84d-24cd927a395e"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i06736ac299cf4290a81367623120bfa5_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfNTg5Mg_dc682b18-ec9c-4fe0-8a28-b6a669d4b998"
      unitRef="number">0.33</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="if65e234734444b97a1b2b945afbb7124_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfNTg5Ng_d8bf2177-2cad-474b-8d97-8ab073ead5b1"
      unitRef="number">0.14</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="i1785f38db7864fd8b9f3ef33bad9f564_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfNTkwMA_afd32395-e156-4bb1-ab74-af0148759e26"
      unitRef="number">0.13</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:ConcentrationRiskPercentage1
      contextRef="if527d4ab37e14c7085649f25cc5f6fd5_D20200101-20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfNTkwNw_47937330-8849-494c-a563-0b730ea60556"
      unitRef="number">0.11</us-gaap:ConcentrationRiskPercentage1>
    <us-gaap:EarningsPerSharePolicyTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfMTE5ODM_24382806-a3b8-4fd7-8cda-8a997a9e64ca">&lt;div style="margin-bottom: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;Net Income Per Share Attributable to Common Stockholders&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 considers the preferred stock as participating securities. Holders of participating securities do not have a contractual obligation to share in the Company&#x2019;s losses. In accordance with the two-class method, earnings allocated to these participating securities and the related number of outstanding shares of the participating securities have been excluded from the computation of basic and diluted net income per share attributable to common stockholders. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 the Company&#x2019;s Class A and Class B common stock outstanding.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 &lt;/span&gt;&lt;/div&gt;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.</us-gaap:EarningsPerSharePolicyTextBlock>
    <us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM18zNy9mcmFnOjcwODhiY2VlNDJkYzQwM2RhYTk4NjUxNDA2NjJkMDI0L3RleHRyZWdpb246NzA4OGJjZWU0MmRjNDAzZGFhOTg2NTE0MDY2MmQwMjRfMTE5ODE_18582d22-1dfc-41cd-8f64-f1c8b749839f">&lt;div style="margin-bottom: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;Recently Adopted Accounting Pronouncements&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In December 2019 the FASB issued ASU 2019-12&#x2014;Simplifying the Accounting for Income Taxes&#160;(ASU 2019-12). ASU 2019-12 simplifies the accounting for income taxes by removing certain exceptions to general principles in Topic 740 and clarifies and amends existing guidance for clarity and consistent application. Effective on January 1, 2021, the Company adopted this standard, which did not have a material impact on the condensed consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Recent Accounting Pronouncements Not Yet Adopted&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 Jumpstart Our Business Startups Act (the &#x201c;JOBS Act&#x201d;), the Company meets the definition of an emerging growth company (&#x201c;EGC&#x201d;) and can delay adopting new or revised accounting standards issued subsequent to the enactment of the JOBS Act until such time as those standards apply to private companies. The Company has elected to use this extended transition period under the JOBS Act until such time the Company is no longer considered to be an EGC. The adoption dates discussed below reflect this election. The Company expects to become a large accelerated filer on the last day of its fiscal year 2021 and will no longer qualify as an EGC and plans to revise the adoption dates accordingly in a subsequent filing.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 February 2016, FASB issued ASU No. 2016-02, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Leases&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;, which requires an entity to recognize right-of-use assets and lease liabilities on its balance sheet and disclose key information about leasing arrangements. The guidance offers specific accounting guidance for a lessee, lessor, and sale and leaseback transactions. Lessees and lessors are required to disclose qualitative and quantitative information about leasing arrangements to enable a user of the financial statements to assess the amount, timing, and uncertainty of cash flows arising from leases. Leases will be classified as either finance or operating, with the classification affecting the pattern of expense recognition in the income statement. The guidance is effective for the Company for fiscal year 2022 and requires a modified retrospective adoption, with early adoption permitted. Although the Company is currently evaluating the impact of this guidance on its condensed consolidated financial statements, the Company expects that most of its operating lease commitments will be recognized as operating lease liabilities and right-of-use assets upon adoption of the new guidance. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In June 2016, FASB issued ASU No. 2016-13, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Financial Instruments &#x2013; Credit Losses (Topic 326): Measurement of Credit Losses on Financial Instruments&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; (ASU 2016-13). This update changes the accounting for recognizing impairments of financial assets, such that credit losses for certain types of financial instruments will be estimated based on expected losses. The update also modifies the impairment models for available-for-sale debt securities and for purchased financial assets with credit deterioration since their origination. ASU 2016-13 is effective for the Company in fiscal year 2023. Early adoption is permitted after for periods beginning after December 15, 2018. The Company has not yet determined the potential effects of this new accounting guidance on its condensed consolidated financial statements. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 January 2017, the FASB issued ASU No. 2017-04, &lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-style:italic;font-weight:400;line-height:120%"&gt;Intangibles&#x2014;Goodwill and Other: Simplifying the Test for Goodwill Impairment&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; (ASU 2017-04). ASU 2017-04 eliminates Step 2 from the goodwill impairment test which measures a goodwill impairment loss by comparing the implied fair value of a reporting unit&#x2019;s goodwill with the carrying amount of that goodwill. Under ASU 2017-04, an entity should perform its annual or interim goodwill impairment test by comparing the fair value of the reporting unit with its carrying amount, and should recognize an impairment loss for the amount by which the carrying amount exceeds the reporting unit&#x2019;s fair value, with the loss not exceeding the total amount of goodwill allocated to that reporting unit. ASU 2017-04 will be effective for the Company beginning on January 1, 2023. Early adoption is permitted for interim or annual goodwill impairment tests performed after January 1, 2017. At adoption, this update will require a prospective approach. The Company is currently evaluating the impact of adopting this new accounting guidance on its condensed consolidated financial statements and related disclosures.&lt;/span&gt;&lt;/div&gt;</us-gaap:NewAccountingPronouncementsPolicyPolicyTextBlock>
    <us-gaap:FairValueDisclosuresTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RleHRyZWdpb246YzQwZDU2ZDhkNDAyNDg0ZmJhZTY1OGVhMTc4MTBkMTlfMTExMQ_1657ea0b-9d9b-4eb3-a6ec-3823f4422498">Fair Value Measurements&lt;div style="margin-bottom:9.5pt;text-indent: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 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-bottom:9.5pt;text-indent:18pt"&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:51.464%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.278%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.278%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.278%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.279%"/&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;June 30, 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 I&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 II&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 III&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;38,101&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;38,101&#160;&lt;/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;7,367&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;7,367&#160;&lt;/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;38,101&#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;7,367&#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;45,468&#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;31,370&#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;31,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Marketable securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;31,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;31,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total Financial Assets&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;38,101&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;38,737&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;76,838&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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, 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="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 I&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-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;Level II&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-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;Level III&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-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;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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="21" style="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;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;Money market funds&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 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;12,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td 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;&#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;12,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Commercial paper&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;&#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;7,199&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;7,199&#160;&lt;/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;Cash equivalents&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;12,462&#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;7,199&#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;19,661&#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;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;8,999&#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;8,999&#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;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;10,794&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;10,794&#160;&lt;/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;19,793&#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;19,793&#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:100%"&gt;Total Financial 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;12,462&#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,992&#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;39,454&#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="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-bottom:9.5pt;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;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;padding-left:8.68pt"&gt;The amounts were previously combined and presented as cash equivalents. Prior periods have been reclassified to conform with current period presentation.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 I and II assets. The Company had no Level III assets or liabilities for the periods presented. The Company classifies its cash equivalents and marketable securities within Level I or Level II 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;</us-gaap:FairValueDisclosuresTextBlock>
    <us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RleHRyZWdpb246YzQwZDU2ZDhkNDAyNDg0ZmJhZTY1OGVhMTc4MTBkMTlfMTExMg_6c218ccc-3e6f-4d71-96d9-278d4f833d48">&lt;div style="margin-bottom:9.5pt;text-indent: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 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-bottom:9.5pt;text-indent:18pt"&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:51.464%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.278%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.278%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.278%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:10.279%"/&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;June 30, 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 I&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 II&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 III&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;38,101&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;38,101&#160;&lt;/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;7,367&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;7,367&#160;&lt;/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;38,101&#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;7,367&#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;45,468&#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;31,370&#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;31,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Marketable securities&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;31,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="2" style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;31,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Total Financial Assets&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;38,101&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;38,737&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;76,838&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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, 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="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 I&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-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;Level II&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-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;Level III&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-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;Total&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'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="21" style="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;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;Money market funds&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 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;12,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td 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;&#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;12,462&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Commercial paper&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;&#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;7,199&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;7,199&#160;&lt;/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;Cash equivalents&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;12,462&#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;7,199&#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;19,661&#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;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;8,999&#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;8,999&#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;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;10,794&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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;10,794&#160;&lt;/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;19,793&#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;19,793&#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:100%"&gt;Total Financial 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;12,462&#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,992&#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;39,454&#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="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-bottom:9.5pt;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;(1)&lt;/span&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:400;line-height:120%;padding-left:8.68pt"&gt;The amounts were previously combined and presented as cash equivalents. Prior periods have been reclassified to conform with current period presentation.&lt;/span&gt;&lt;/div&gt;</us-gaap:ScheduleOfFairValueAssetsAndLiabilitiesMeasuredOnRecurringBasisTableTextBlock>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i2b73d56f6ce5465aa343828d7d4b8095_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMy0xLTEtMS0w_af6bf392-62d5-43a7-b13c-a637e615215e"
      unitRef="usd">38101000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i594fdb6da3314cd9bba437395f29a651_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMy0zLTEtMS0w_d718606a-5a52-486b-a222-0d9cc61880c7"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i7904825eb1914a70804986460a5f2aee_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMy01LTEtMS0w_9c52f14b-3715-4b46-bb1f-4f9a1a223149"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i7661eade67d543e6811a88ffa3471b00_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMy03LTEtMS0w_0173a3d5-d2bf-442f-bfb5-1d3e67cd2c18"
      unitRef="usd">38101000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i9c63931762914c12bddf26576a0af3c0_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNC0xLTEtMS0yODY3_fab35706-54d1-4755-a11c-0f2f9e502f26"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="iab5631586b854f3aa0f73b9c6eb4bd2a_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNC0zLTEtMS0yODY3_aa33d1f2-9cd7-42d8-b441-19029fc0fb0c"
      unitRef="usd">7367000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i0a3d41410edf471bbbc0fa0f9d937fa3_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNC01LTEtMS0yODY3_bf8a72da-da6d-4f09-80b1-b52a38cd97cf"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i823ebec8c9b1401994e6f6b76aac2cc6_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNC03LTEtMS0zNDg3_00d732de-1204-4d71-86cc-52138746f63e"
      unitRef="usd">7367000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i80b0fc061f34451f8e09aed489182878_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNS0xLTEtMS0zNDg1_18608188-8a6a-4167-860b-481bcd9032d8"
      unitRef="usd">38101000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ibce249cb5b74454bba910bcb9387537d_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNS0zLTEtMS0zNDg1_b5b14d10-1601-4756-90f7-ddf022d68097"
      unitRef="usd">7367000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="iacf0c7e8f4334619b6e44a103c2c8ab2_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNS01LTEtMS0zNDg1_1ec16a2e-ecfb-4238-b637-b3e7fe4a3a3c"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="if1fe12f2887e437ea828a92dcac847f7_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNS03LTEtMS0zNDg1_45c4dad8-b3e2-4777-8df1-1d1f25691e9e"
      unitRef="usd">45468000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ie40dcf42a87543188ff256eeaa00942c_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNC0xLTEtMS0w_f3451dcf-ae8f-4ee0-accc-e1bb9292333d"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i792d6faa6ea6462497a321f81975dfc0_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNC0zLTEtMS0w_731796fd-0e28-420f-a3df-ac33b6f56ad2"
      unitRef="usd">31370000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i997933b355124c749123dd37001e95f6_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNC01LTEtMS0w_831e1b7c-e76e-4261-b560-502c487409d5"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ic7c9cc1668ca47248ece3328d66ad37a_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNC03LTEtMS0w_39522571-6e00-4b50-963a-ef295350db42"
      unitRef="usd">31370000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i12b45a75206448af9c5ab92ab596121b_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNy0xLTEtMS0zNDkz_0bd9df21-0022-4178-b258-e9fca54aef9c"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i96604ba573764bafa371225993430791_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNy0zLTEtMS0zNDkz_b287773f-fe67-4fba-84bd-dcfa9c70af5b"
      unitRef="usd">31370000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ie1d1cfcea9ac4064978afa0f34dc8121_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNy01LTEtMS0zNDkz_f9428d04-13f4-4989-9d6e-a198ba75f7d1"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfNy03LTEtMS0zNDkz_9088b577-674c-4692-acb7-248eaad7d810"
      unitRef="usd">31370000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i12b45a75206448af9c5ab92ab596121b_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfOC0xLTEtMS0zNDk4_2a241278-346f-4de0-bfd6-57f70899f8d5"
      unitRef="usd">38101000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i96604ba573764bafa371225993430791_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfOC0zLTEtMS0zNDk4_8d74a15a-0c28-4ea8-81cb-7da1cbf3817f"
      unitRef="usd">38737000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="ie1d1cfcea9ac4064978afa0f34dc8121_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfOC01LTEtMS0zNDk4_6a592769-a359-47b7-8ddc-7445fb328b44"
      unitRef="usd">0</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfOC03LTEtMS0zNDk4_53ed8902-354a-413d-bc33-618cfbaae732"
      unitRef="usd">76838000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i058489cdcfdc418b8d22c58b526076ba_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTAtMS0xLTEtMA_9b74fe52-76fe-495b-8dc7-20accc6e1459"
      unitRef="usd">12462000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i13f78ce8149d499aac56fb9a9e89b0fa_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTAtMy0xLTEtMA_f09d303d-cb71-4399-a4d8-d4441cf04104"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="iba587efaf94849ba8f8f9bbc3c2c7d6a_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTAtNS0xLTEtMA_7b1ace38-d514-46be-b31f-cd16f2798354"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="icbaa7cf62c094a62ab354f0f045dc689_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTAtNy0xLTEtMA_6108d89a-cb26-4a85-b75f-6f58f2a6d8d1"
      unitRef="usd">12462000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i20f3962574624ce890157b7c69724dad_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTEtMS0xLTEtMA_e8762b79-2b2d-47d6-a53b-829628723786"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i287bb220ef36464f8f0b238b76477272_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTEtMy0xLTEtMA_f0f89129-1baf-49bf-8e7e-742869465e1f"
      unitRef="usd">7199000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="ide90286cf52743edbf7cc5b27b341496_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTEtNS0xLTEtMA_3990c99f-5b69-4b59-957a-924028cbb26e"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i24061fe7e0104fc5bd4f64733946ecf3_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTEtNy0xLTEtMA_318b702c-0d68-4716-bb79-149fd34a61b1"
      unitRef="usd">7199000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i3bc985656f444c38b8187449958a01da_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTUtMS0xLTEtMzQ4OQ_395d45dc-5fd6-40a8-810b-45db0c79eecc"
      unitRef="usd">12462000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i1224e145852348178f728a0fd5b7df4d_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTUtMy0xLTEtMzQ4OQ_253d48d9-210e-462e-bcc6-5fc3227e7e1f"
      unitRef="usd">7199000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i211b40e423b94f53b92c84d1bd24a72d_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTUtNS0xLTEtMzQ4OQ_2cddffcf-5e7f-4e3e-848a-3a500b878abf"
      unitRef="usd">0</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:CashAndCashEquivalentsFairValueDisclosure
      contextRef="i166d4d7adabb4ed9bab63a44c34977cf_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTUtNy0xLTEtMzQ4OQ_276706fd-bbba-4b1d-83e5-500b39617744"
      unitRef="usd">19661000</us-gaap:CashAndCashEquivalentsFairValueDisclosure>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i6e5ab54261e641f390462a6c976cc135_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTItMS0xLTEtMA_b6468dca-555c-4be4-ba79-4cf81b076f00"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i6e2ca297f02f465ca1afa4707a86bad9_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTItMy0xLTEtMA_01949e6a-4fae-4684-a029-0ba1360decb6"
      unitRef="usd">8999000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="idb2d9a82496c453dac3c15ef2269f7f7_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTItNS0xLTEtMA_c35cb286-97d0-41fa-b642-3b48d8737a81"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ie689a70cd9e44f3f8f343385407514d3_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTItNy0xLTEtMA_2ed6316d-e1d9-4834-ab80-93d43cda35a3"
      unitRef="usd">8999000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ibdce1cdbed8143d0b87afb0e7cdcf635_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTctMS0xLTEtMzIwNg_1848735c-744b-4fb8-a956-e87af379ea28"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ibb20f355e3a64d318c241eb2c9641113_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTctMy0xLTEtMzIwNg_ad745b6f-be2b-42ab-b23c-745a564aac9a"
      unitRef="usd">10794000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i75fdbb5b030b4b67951cd01246fb7dd4_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTctNS0xLTEtMzIwNg_b6cae6bd-808c-4b11-ac8e-769e51100cef"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i82ed9b56331447348d6a3382a0030b0e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTctNy0xLTEtMzIwNg_49fa6cc1-5560-4a25-9464-cf0d6c8415bd"
      unitRef="usd">10794000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="ib9aec4773ec54c239a246fa31b75bafc_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTgtMS0xLTEtMzQ5Ng_2b77f730-80ce-4317-a43a-96b575c87deb"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="i68b35f486d074bde9942cb13aef326c1_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTgtMy0xLTEtMzQ5Ng_1f7f8bee-cb32-4ee4-9d4c-b04bf6e0312d"
      unitRef="usd">19793000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="id39be5b3e8784e62af01a7b45a417038_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTgtNS0xLTEtMzQ5Ng_7a13ac4b-2b14-4ce4-9d9f-1aef093c962d"
      unitRef="usd">0</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AvailableForSaleSecuritiesDebtSecurities
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTgtNy0xLTEtMzQ5Ng_88e3a6de-e9ea-4f08-8d48-f19e9e45ee0c"
      unitRef="usd">19793000</us-gaap:AvailableForSaleSecuritiesDebtSecurities>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="ib9aec4773ec54c239a246fa31b75bafc_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTktMS0xLTEtMzUwMA_1585d8f5-6897-4d51-824b-0cbc83003b56"
      unitRef="usd">12462000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="i68b35f486d074bde9942cb13aef326c1_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTktMy0xLTEtMzUwMw_9983f3de-e9f5-4988-84d1-69c0b58270ef"
      unitRef="usd">26992000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="id39be5b3e8784e62af01a7b45a417038_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTktNS0xLTEtMzUwNQ_b583b285-fde6-469b-acbe-ce6b5f6f365f"
      unitRef="usd">0</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:AssetsFairValueDisclosure
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180MC9mcmFnOmM0MGQ1NmQ4ZDQwMjQ4NGZiYWU2NThlYTE3ODEwZDE5L3RhYmxlOmYxNjZmZDZjMmYzNjQ4OGU5YzIwNTYyZmMwMmUxZGI0L3RhYmxlcmFuZ2U6ZjE2NmZkNmMyZjM2NDg4ZTljMjA1NjJmYzAyZTFkYjRfMTktNy0xLTEtMzUwNw_fd96b59b-d1f3-48bb-a794-918d2701f640"
      unitRef="usd">39454000</us-gaap:AssetsFairValueDisclosure>
    <us-gaap:SupplementalBalanceSheetDisclosuresTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTM0MA_17dbffd2-d3d1-4c74-b9c0-5e9e88d899bd">Balance Sheet Components&lt;div style="margin-bottom: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-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s marketable securities by significant investment categories (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt"&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:45.694%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.720%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.720%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.720%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.723%"/&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;June 30, 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:0.5pt 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:0.5pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:0.5pt 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 Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:0.5pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:0.5pt 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 Unrealized Loss&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:0.5pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:0.5pt 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31,370&#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;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;31,370&#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;&#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 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;&#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 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;31,370&#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="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="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, 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="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;Gross 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;Gross 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,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;/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 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,998&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,999&#160;&lt;/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;19,792&#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;1&#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;19,793&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 June&#160;30, 2021 and December&#160;31, 2020. Realized gains and losses were not material for the three and six months ended June 30, 2021 and 2020. As of June&#160;30, 2021 and 2020, 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-bottom: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;Property, Equipment and Software, Net&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 consists of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.374%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.842%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.843%"/&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;June 30,&lt;br/&gt;2021&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;December 31,&lt;br/&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;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;29,071&#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;24,513&#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;80,675&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,764&#160;&lt;/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;1,230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,249&#160;&lt;/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;623&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;621&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;111,599&#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;89,147&#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;(67,998)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;(59,103)&lt;/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 property, equipment and software, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:0.5pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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:0.5pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;43,601&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:0.5pt 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:0.5pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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:0.5pt solid #000;padding:2px 0;text-align:right;vertical-align: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,044&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:0.5pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 $3.4&#160;million and $2.3&#160;million for the three months ended June 30, 2021 and 2020, respectively, and $6.3 million and $4.5 million for the six months ended June 30, 2021 and 2020, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 $2.5 million and $1.7 million in software development costs during the three months ended June 30, 2021 and 2020, respectively, and $4.6 million and $3.4 million for the six months ended June 30, 2021 and 2020, respectively. Amortization expense of internal use software was $1.8&#160;million and $1.5&#160;million &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;during the three months ended June 30, 2021 and 2020, respectively, and $3.4 million and $2.9 million for the six months ended June 30, 2021 and 2020, respectively. These costs are included within cost of revenue in the condensed consolidated statements of operations and comprehensive income. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 six months ended June 30, 2021 and 2020, respectively.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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;Accounts Payable &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 consists of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.374%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.842%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.843%"/&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;June 30,&lt;br/&gt;2021&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;December 31,&lt;br/&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;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;151,600&#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;168,673&#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;Other&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,976&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,058&#160;&lt;/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 #000000;border-top:0.5pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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 #000000;border-top:0.5pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;162,576&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:0.5pt 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:0.5pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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:0.5pt solid #000;padding:2px 0;text-align:right;vertical-align: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,731&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:0.5pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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 Expenses&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 expenses consist of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.374%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.842%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.843%"/&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;June 30,&lt;br/&gt;2021&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;December 31,&lt;br/&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;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;10,796&#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;13,352&#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;2,984&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,492&#160;&lt;/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 expenses&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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 #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;13,780&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;14,844&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:SupplementalBalanceSheetDisclosuresTextBlock>
    <us-gaap:DebtSecuritiesAvailableForSaleTableTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTM0MQ_a288fc67-f6a9-4290-a715-d291c15a6234">&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;The following table summarizes the Company&#x2019;s marketable securities by significant investment categories (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt"&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:45.694%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.720%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.720%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.720%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.723%"/&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;June 30, 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:0.5pt 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:0.5pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:0.5pt 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 Unrealized Gains&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:0.5pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:0.5pt 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 Unrealized Loss&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="border-top:0.5pt solid #000;padding:0 1pt"/&gt;&lt;td colspan="3" style="border-top:0.5pt 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31,370&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;31,370&#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;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;31,370&#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;&#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 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;&#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 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;31,370&#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="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="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, 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="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;Gross 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;Gross 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,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;/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 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,998&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;8,999&#160;&lt;/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;19,792&#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;1&#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;19,793&#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="i4fc735e430204e40aab1a6b829344d33_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfMi0xLTEtMS0w_e9cac2f7-1581-4b43-a1de-103ab9eec886"
      unitRef="usd">31370000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i4fc735e430204e40aab1a6b829344d33_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfMi0zLTEtMS0w_1b5231cd-3c1c-4bf6-b58d-c7aa795f879f"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i4fc735e430204e40aab1a6b829344d33_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfMi01LTEtMS0w_1fd45f6d-a1d3-467a-bc35-040cfb1994a4"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i4fc735e430204e40aab1a6b829344d33_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfMi03LTEtMS0w_bd4e74df-5d78-4e13-ac58-eafa26f9bf5e"
      unitRef="usd">31370000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfNC0xLTEtMS0w_bf36c4b7-7479-43b5-a00e-14c2bcb19454"
      unitRef="usd">31370000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfNC0zLTEtMS0w_dbf79f07-9ad1-40bb-b4e8-f99f95c171ef"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfNC01LTEtMS0w_08eb20fa-3178-49ff-b72d-7b552f392ef3"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfNC03LTEtMS0w_216ee11e-3cb1-4e2b-8700-7273067ec7ec"
      unitRef="usd">31370000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent
      contextRef="i09264f42c43d440abd1f9155e71906a1_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfOC0xLTEtMS0w_95b4c3b0-5e93-4121-8f25-396a85ff7ebd"
      unitRef="usd">10794000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="i09264f42c43d440abd1f9155e71906a1_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfOC0zLTEtMS0w_a1756051-0b40-48c3-bc68-e33e01287e85"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="i09264f42c43d440abd1f9155e71906a1_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfOC01LTEtMS0w_282cb00b-cdea-49e7-aee1-81b8332a886e"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="i09264f42c43d440abd1f9155e71906a1_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfOC03LTEtMS0w_2b3abd45-1c89-40d3-8c01-d450d59f94b8"
      unitRef="usd">10794000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent
      contextRef="ibe01f4d941fa45ed80d6865b2343f101_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfOS0xLTEtMS0w_19cf129b-6e45-4495-941f-18bf7f22c90c"
      unitRef="usd">8998000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="ibe01f4d941fa45ed80d6865b2343f101_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfOS0zLTEtMS0w_519b2b2c-c0b6-43c9-9909-f9bc4adc5bb8"
      unitRef="usd">1000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="ibe01f4d941fa45ed80d6865b2343f101_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfOS01LTEtMS0w_477a2b71-7223-4158-9a2c-ba00e4ef0b0a"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="ibe01f4d941fa45ed80d6865b2343f101_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfOS03LTEtMS0w_518455e3-69b6-4773-a51c-a678132ecc11"
      unitRef="usd">8999000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfMTAtMS0xLTEtMA_54c9cf5b-e290-4421-a4bf-b8d6b20c47ad"
      unitRef="usd">19792000</us-gaap:DebtSecuritiesAvailableForSaleAmortizedCostCurrent>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfMTAtMy0xLTEtMA_45d1d201-51d4-4e27-976e-3ac7d2d501b9"
      unitRef="usd">1000</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedGainBeforeTax>
    <us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfMTAtNS0xLTEtMA_197bc03e-68bb-460a-9187-478fe4ef5894"
      unitRef="usd">0</us-gaap:AvailableForSaleDebtSecuritiesAccumulatedGrossUnrealizedLossBeforeTax>
    <us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjJmNGRmYmRlOWU5YzRiMjM4MmQ2YzY5MTg1ZTlmM2UxL3RhYmxlcmFuZ2U6MmY0ZGZiZGU5ZTljNGIyMzgyZDZjNjkxODVlOWYzZTFfMTAtNy0xLTEtMA_c7ff4eca-8489-452b-8f18-ac0ce03f7249"
      unitRef="usd">19793000</us-gaap:AvailableForSaleSecuritiesDebtSecuritiesCurrent>
    <us-gaap:PropertyPlantAndEquipmentTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTM0Mg_7799842d-2718-4c2e-824f-a6f3719b0a4c">&lt;div style="margin-bottom:9.5pt;text-indent: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 consists of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.374%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.842%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.843%"/&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;June 30,&lt;br/&gt;2021&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;December 31,&lt;br/&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;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;29,071&#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;24,513&#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;80,675&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,764&#160;&lt;/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;1,230&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,249&#160;&lt;/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;623&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;621&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;111,599&#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;89,147&#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;(67,998)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;(59,103)&lt;/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 property, equipment and software, net&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:0.5pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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:0.5pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;43,601&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:0.5pt 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:0.5pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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:0.5pt solid #000;padding:2px 0;text-align:right;vertical-align: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,044&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:0.5pt 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="i734f1ad6138e40d59095880140b18cfc_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfMS0xLTEtMS0w_4c5f2fa5-102f-476a-b0df-af8330f3c020"
      unitRef="usd">29071000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ic244186eb178415ba355cfedcc0b2aca_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfMS0zLTEtMS0w_42d39e00-7609-463f-9ac4-2f870c1aa62f"
      unitRef="usd">24513000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i715e992d3afc4991b6543600baeb571c_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfMi0xLTEtMS0w_6d524abd-3236-4c2e-a768-c175899f6dbf"
      unitRef="usd">80675000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ie1c2b6ee2ede4836a2aad96e86aecab0_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfMi0zLTEtMS0w_69b65ae3-d28f-4130-97fe-987e545a1c39"
      unitRef="usd">62764000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i7698bd64b0de4d0c810f9022b713b833_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfMy0xLTEtMS0w_6f72f708-09e8-4b75-abb5-41ee2d81e599"
      unitRef="usd">1230000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="ie1f613b0eaf5440eb553b436c6e01fda_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfMy0zLTEtMS0w_02eb1de2-2930-4391-b786-a0dc4f80f8d0"
      unitRef="usd">1249000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i4e5685df437946898e5f605afe116447_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfNC0xLTEtMS0w_0cc5b0b5-5218-42be-bf19-46abb57bc7f5"
      unitRef="usd">623000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i75dfd4d9494b4b3bab8e26154f2ba9db_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfNC0zLTEtMS0w_8026c409-178c-45a9-9851-c67c37f52012"
      unitRef="usd">621000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfNS0xLTEtMS0w_09605480-f539-49bf-9413-d297ee80dd91"
      unitRef="usd">111599000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:PropertyPlantAndEquipmentGross
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfNS0zLTEtMS0w_91f1bbdd-2418-40dc-9900-d24e90b3f693"
      unitRef="usd">89147000</us-gaap:PropertyPlantAndEquipmentGross>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfNi0xLTEtMS0w_e7c8190e-4171-4c73-b6dd-c86314b60181"
      unitRef="usd">67998000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfNi0zLTEtMS0w_1d47e5ec-96a6-4e74-b76d-70a05296548c"
      unitRef="usd">59103000</us-gaap:AccumulatedDepreciationDepletionAndAmortizationPropertyPlantAndEquipment>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfNy0xLTEtMS0w_ee8168b3-c8ed-4c8d-8981-fed80ca2c74e"
      unitRef="usd">43601000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:PropertyPlantAndEquipmentNet
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjlmNjE2MTkzMGQzZDQwMmNhODM0OGU2Mzg1MDIwN2M5L3RhYmxlcmFuZ2U6OWY2MTYxOTMwZDNkNDAyY2E4MzQ4ZTYzODUwMjA3YzlfNy0zLTEtMS0w_28486ab2-5c08-44f0-8efd-0eddf55983b9"
      unitRef="usd">30044000</us-gaap:PropertyPlantAndEquipmentNet>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTA5OTUxMTYyOTU5MQ_cb6e35bc-6661-414e-8904-373ab5ebbe2e"
      unitRef="usd">3400000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTA5OTUxMTYyOTU5OQ_559e5030-8e3a-41f6-a223-358eb44cc126"
      unitRef="usd">2300000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTA5OTUxMTYyOTU4Ng_38eba4e8-a360-43fe-8caa-622e17fc2991"
      unitRef="usd">6300000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:DepreciationDepletionAndAmortization
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTA5OTUxMTYyOTU5NA_7517c296-9b75-4f19-b9f5-c4b4d4262ee5"
      unitRef="usd">4500000</us-gaap:DepreciationDepletionAndAmortization>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfNzg3_f8b528d4-e47b-4df7-9b9a-e0ddd33dc52f"
      unitRef="usd">2500000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfNzk0_4f5689ea-be44-431a-8f88-3a93be05a2c7"
      unitRef="usd">1700000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTA5OTUxMTYyOTMwMw_29b82857-7b1d-4b8a-9d90-5e218ddbca8b"
      unitRef="usd">4600000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:CapitalizedComputerSoftwareAdditions
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTA5OTUxMTYyOTMxMQ_f3b01ed1-18ce-427f-ac09-5a98a096a0c9"
      unitRef="usd">3400000</us-gaap:CapitalizedComputerSoftwareAdditions>
    <us-gaap:AdjustmentForAmortization
      contextRef="id8f1c0315ca74354abc9d18536399653_D20210101-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTA5OTUxMTYyOTYwNw_dfc13be3-8d84-4a19-9ad8-dd39752c2964"
      unitRef="usd">1800000</us-gaap:AdjustmentForAmortization>
    <us-gaap:AdjustmentForAmortization
      contextRef="i4d31af61ae514088b247e247eff96357_D20200101-20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTA5OTUxMTYyOTYxNQ_8eef78e9-4351-4d93-a692-d896c453735d"
      unitRef="usd">1500000</us-gaap:AdjustmentForAmortization>
    <us-gaap:AdjustmentForAmortization
      contextRef="i5cd734c78925499f9f27cbae5e30d503_D20210401-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTA5OTUxMTYyOTYwMg_b136ca05-6279-43aa-84fb-d4cd29798199"
      unitRef="usd">3400000</us-gaap:AdjustmentForAmortization>
    <us-gaap:AdjustmentForAmortization
      contextRef="if39ba15452f54344bc34e0369bcd3614_D20200401-20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTA5OTUxMTYyOTYxMA_d6063a2d-963e-4bee-a9a2-441bc59088d4"
      unitRef="usd">2900000</us-gaap:AdjustmentForAmortization>
    <us-gaap:ScheduleOfAccountsPayableAndAccruedLiabilitiesTableTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTM0Mw_d2d5580e-5ae3-4035-9063-59d26d6ca6d4">&lt;div style="margin-bottom:9.5pt;text-indent: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 consists of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.374%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.842%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.843%"/&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;June 30,&lt;br/&gt;2021&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;December 31,&lt;br/&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;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;151,600&#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;168,673&#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;Other&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,976&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,058&#160;&lt;/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 #000000;border-top:0.5pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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 #000000;border-top:0.5pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;162,576&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:0.5pt 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:0.5pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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:0.5pt solid #000;padding:2px 0;text-align:right;vertical-align: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,731&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:0.5pt 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:AccountsPayableTradeCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjkxMmIzZTdkMmVkMDQ2NjQ4MjZlODFhMTZlNmRiMjM1L3RhYmxlcmFuZ2U6OTEyYjNlN2QyZWQwNDY2NDgyNmU4MWExNmU2ZGIyMzVfMS0xLTEtMS0w_9dac1dda-487f-4705-8c4f-35f210b23489"
      unitRef="usd">151600000</us-gaap:AccountsPayableTradeCurrent>
    <us-gaap:AccountsPayableTradeCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjkxMmIzZTdkMmVkMDQ2NjQ4MjZlODFhMTZlNmRiMjM1L3RhYmxlcmFuZ2U6OTEyYjNlN2QyZWQwNDY2NDgyNmU4MWExNmU2ZGIyMzVfMS0zLTEtMS0w_1dbb0494-9fc4-4699-9059-7d47a13235b6"
      unitRef="usd">168673000</us-gaap:AccountsPayableTradeCurrent>
    <us-gaap:AccountsPayableOtherCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjkxMmIzZTdkMmVkMDQ2NjQ4MjZlODFhMTZlNmRiMjM1L3RhYmxlcmFuZ2U6OTEyYjNlN2QyZWQwNDY2NDgyNmU4MWExNmU2ZGIyMzVfMi0xLTEtMS0w_a170e42b-a664-47ff-bc53-239e1d1ed5be"
      unitRef="usd">10976000</us-gaap:AccountsPayableOtherCurrent>
    <us-gaap:AccountsPayableOtherCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjkxMmIzZTdkMmVkMDQ2NjQ4MjZlODFhMTZlNmRiMjM1L3RhYmxlcmFuZ2U6OTEyYjNlN2QyZWQwNDY2NDgyNmU4MWExNmU2ZGIyMzVfMi0zLTEtMS0w_c3716d76-9007-4c3d-91b2-c84670fcd831"
      unitRef="usd">8058000</us-gaap:AccountsPayableOtherCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjkxMmIzZTdkMmVkMDQ2NjQ4MjZlODFhMTZlNmRiMjM1L3RhYmxlcmFuZ2U6OTEyYjNlN2QyZWQwNDY2NDgyNmU4MWExNmU2ZGIyMzVfMy0xLTEtMS0w_4e912b65-e403-4f11-a858-04c814b94182"
      unitRef="usd">162576000</us-gaap:AccountsPayableCurrent>
    <us-gaap:AccountsPayableCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjkxMmIzZTdkMmVkMDQ2NjQ4MjZlODFhMTZlNmRiMjM1L3RhYmxlcmFuZ2U6OTEyYjNlN2QyZWQwNDY2NDgyNmU4MWExNmU2ZGIyMzVfMy0zLTEtMS0w_5c74f181-dd68-4865-81a5-15b5702cfd30"
      unitRef="usd">176731000</us-gaap:AccountsPayableCurrent>
    <us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RleHRyZWdpb246YWI5NTNiZTY3MTJmNDQwMWEwMWEwZGM3ZmUzMDA5NGVfMTM0NA_24727e0c-d0ef-4e5d-b96c-e71a52f1967e">&lt;div style="margin-bottom:9.5pt;text-indent: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 expenses consist of the following (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.374%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.842%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.843%"/&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;June 30,&lt;br/&gt;2021&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;December 31,&lt;br/&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;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;10,796&#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;13,352&#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;2,984&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,492&#160;&lt;/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 expenses&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New 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 #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;13,780&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;14,844&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000000;border-top:1pt solid #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAccruedLiabilitiesTableTextBlock>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjhhMmY3ZDgwZjVjZjRiMGU5MzAzZGZiMjkwZTM1MzQ3L3RhYmxlcmFuZ2U6OGEyZjdkODBmNWNmNGIwZTkzMDNkZmIyOTBlMzUzNDdfMS0xLTEtMS0w_cdfc840a-9316-47bb-902c-809daef37234"
      unitRef="usd">10796000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:EmployeeRelatedLiabilitiesCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjhhMmY3ZDgwZjVjZjRiMGU5MzAzZGZiMjkwZTM1MzQ3L3RhYmxlcmFuZ2U6OGEyZjdkODBmNWNmNGIwZTkzMDNkZmIyOTBlMzUzNDdfMS0zLTEtMS0w_4a723029-5490-47e2-99d2-40e8efe8ba82"
      unitRef="usd">13352000</us-gaap:EmployeeRelatedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjhhMmY3ZDgwZjVjZjRiMGU5MzAzZGZiMjkwZTM1MzQ3L3RhYmxlcmFuZ2U6OGEyZjdkODBmNWNmNGIwZTkzMDNkZmIyOTBlMzUzNDdfMi0xLTEtMS0w_0e1732d0-81c5-4c31-8a78-c045c695240a"
      unitRef="usd">2984000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:OtherAccruedLiabilitiesCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjhhMmY3ZDgwZjVjZjRiMGU5MzAzZGZiMjkwZTM1MzQ3L3RhYmxlcmFuZ2U6OGEyZjdkODBmNWNmNGIwZTkzMDNkZmIyOTBlMzUzNDdfMi0zLTEtMS0w_28ac676b-5612-457d-a409-d254287c3204"
      unitRef="usd">1492000</us-gaap:OtherAccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjhhMmY3ZDgwZjVjZjRiMGU5MzAzZGZiMjkwZTM1MzQ3L3RhYmxlcmFuZ2U6OGEyZjdkODBmNWNmNGIwZTkzMDNkZmIyOTBlMzUzNDdfMy0xLTEtMS0w_21a9d817-421e-4cbc-a6dc-f307e0ce6363"
      unitRef="usd">13780000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:AccruedLiabilitiesCurrent
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180My9mcmFnOmFiOTUzYmU2NzEyZjQ0MDFhMDFhMGRjN2ZlMzAwOTRlL3RhYmxlOjhhMmY3ZDgwZjVjZjRiMGU5MzAzZGZiMjkwZTM1MzQ3L3RhYmxlcmFuZ2U6OGEyZjdkODBmNWNmNGIwZTkzMDNkZmIyOTBlMzUzNDdfMy0zLTEtMS0w_d2056723-314c-4b01-99d9-d3245c541c8f"
      unitRef="usd">14844000</us-gaap:AccruedLiabilitiesCurrent>
    <us-gaap:DebtDisclosureTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180Ni9mcmFnOjkwMTg0ZTViMDc4MTQ1ZTE5ZThlNDFhODlmOTc5MjkzL3RleHRyZWdpb246OTAxODRlNWIwNzgxNDVlMTllOGU0MWE4OWY5NzkyOTNfMTY0OA_68fd620f-bb8b-427b-a13b-4f3a96221e66">Loan and Security Agreement&lt;div style="margin-bottom:9.5pt;text-indent: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 with Silicon Valley Bank ("SVB") (the "Loan Agreement"). The Loan Agreement provides a senior secured revolving credit facility of up to $25.0 million or 80% of eligible accounts receivable less certain reserves, minus the aggregate principal amount of all outstanding advances. Interest accrues 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 is charged and is payable quarterly in arrears in any quarter where the average closing outstanding balance is less than $5.0 million. As of June&#160;30, 2021, the applicable interest rate under the revolving line of credit was 3.25% with a maturity date of June&#160;6, 2024. As of June&#160;30, 2021 there were no outstanding advances under the revolving line of credit. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 obligations under the line of credit and the letters of credit (described in Note 6) with SVB are secured by substantially all of its assets excluding its intellectual property. The Loan Agreement contains affirmative covenants including financial covenants that, among other things, require the Company to maintain an adjusted quick ratio of no less than 1.0 to 1.0. The adjusted quick ratio is defined as the ratio of unrestricted cash and cash equivalents at SVB, plus billed accounts receivable to total accounts payable plus all SVB loans outstanding and outstanding letters of credit. The Loan Agreement also restricts the Company from paying dividends to stockholders without prior consent from SVB. The Company was in compliance with the financial covenants as of June&#160;30, 2021.&lt;/span&gt;&lt;/div&gt;</us-gaap:DebtDisclosureTextBlock>
    <us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity
      contextRef="ieb93c88fe33d43c7bf223b03bf4aa18e_I20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180Ni9mcmFnOjkwMTg0ZTViMDc4MTQ1ZTE5ZThlNDFhODlmOTc5MjkzL3RleHRyZWdpb246OTAxODRlNWIwNzgxNDVlMTllOGU0MWE4OWY5NzkyOTNfMTA5OTUxMTYyOTk2NQ_f5bf7b92-378c-4796-a4da-bec24c1ea078"
      unitRef="usd">25000000.0</us-gaap:LineOfCreditFacilityMaximumBorrowingCapacity>
    <pubm:LineOfCreditFacilityBorrowingCapacityPercentageOfEligibleAccountsReceivableNet
      contextRef="ieb93c88fe33d43c7bf223b03bf4aa18e_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180Ni9mcmFnOjkwMTg0ZTViMDc4MTQ1ZTE5ZThlNDFhODlmOTc5MjkzL3RleHRyZWdpb246OTAxODRlNWIwNzgxNDVlMTllOGU0MWE4OWY5NzkyOTNfMTA5OTUxMTYzMDE4OQ_2c88234b-b18f-4604-8778-542cccd7aec2"
      unitRef="number">0.80</pubm:LineOfCreditFacilityBorrowingCapacityPercentageOfEligibleAccountsReceivableNet>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="ieb93c88fe33d43c7bf223b03bf4aa18e_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180Ni9mcmFnOjkwMTg0ZTViMDc4MTQ1ZTE5ZThlNDFhODlmOTc5MjkzL3RleHRyZWdpb246OTAxODRlNWIwNzgxNDVlMTllOGU0MWE4OWY5NzkyOTNfMjE5OTAyMzI2NDQyOQ_3e61de5c-b8e8-4e4a-a1f4-2876b54c20df"
      unitRef="number">0.0325</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage
      contextRef="i5f9e8f1881ef417ca67c81915aa29f12_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180Ni9mcmFnOjkwMTg0ZTViMDc4MTQ1ZTE5ZThlNDFhODlmOTc5MjkzL3RleHRyZWdpb246OTAxODRlNWIwNzgxNDVlMTllOGU0MWE4OWY5NzkyOTNfMTA5OTUxMTYzMDQ2Mg_5cb97d7f-3906-43a9-aa3d-85c23e771048"
      unitRef="number">0.0040</us-gaap:LineOfCreditFacilityUnusedCapacityCommitmentFeePercentage>
    <pubm:LineOfCreditFacilityBorrowingCapacityUnusedCapacityFeeClosingBalanceThreshold
      contextRef="ieb93c88fe33d43c7bf223b03bf4aa18e_I20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180Ni9mcmFnOjkwMTg0ZTViMDc4MTQ1ZTE5ZThlNDFhODlmOTc5MjkzL3RleHRyZWdpb246OTAxODRlNWIwNzgxNDVlMTllOGU0MWE4OWY5NzkyOTNfMTA5OTUxMTYzMDY0OA_93717939-5b6b-4086-a9b9-40f2de10e73e"
      unitRef="usd">5000000.0</pubm:LineOfCreditFacilityBorrowingCapacityUnusedCapacityFeeClosingBalanceThreshold>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="ieb93c88fe33d43c7bf223b03bf4aa18e_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180Ni9mcmFnOjkwMTg0ZTViMDc4MTQ1ZTE5ZThlNDFhODlmOTc5MjkzL3RleHRyZWdpb246OTAxODRlNWIwNzgxNDVlMTllOGU0MWE4OWY5NzkyOTNfMTA5OTUxMTYzMDczMg_dc08f470-5a9c-4437-8d86-6729b93ed4fd"
      unitRef="number">0.0325</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <pubm:DebtInstrumentCovenantQuickRatioMinimum
      contextRef="ieb93c88fe33d43c7bf223b03bf4aa18e_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180Ni9mcmFnOjkwMTg0ZTViMDc4MTQ1ZTE5ZThlNDFhODlmOTc5MjkzL3RleHRyZWdpb246OTAxODRlNWIwNzgxNDVlMTllOGU0MWE4OWY5NzkyOTNfMTA5OTUxMTYzMTE5MQ_0fa4d7ab-8b0b-4319-b9df-e5338aa2e04a"
      unitRef="number">1.0</pubm:DebtInstrumentCovenantQuickRatioMinimum>
    <us-gaap:CommitmentsAndContingenciesDisclosureTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RleHRyZWdpb246OGVjOTcyYTJlNDZmNGNiNmFiNjFmN2E0OGZkNzE0YjBfMzc5MQ_9537a150-6246-41a0-b6a2-f3b9c7ba0d9f">Commitments and Contingencies &lt;div style="margin-bottom: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;Operating Leases and Other Contractual Obligations&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 commitments for future payments related to office facilities leases and other contractual obligations. The Company leases its office facilities under operating lease agreements that expire over varying time periods through the year ending December&#160;31, 2023. Certain of these lease agreements have free or escalating rent payment provisions or fund certain leasehold improvements, which the Company accounts as lease incentives. The Company recognizes rent expense under such agreements on a straight-line basis over the lease term, with any lease incentive amortized as a reduction of rent expense over the lease term. The Company also has other contractual obligations expiring over varying time periods through the year ending December&#160;31, 2024. Other contractual obligations primarily relate to minimum contractual payments due to data center providers. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future annual minimum commitments as of June&#160;30, 2021, are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.374%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.842%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.843%"/&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;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: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;Other&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Contractual Obligations&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;2021 (for remaining 6 months)&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;982&#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;4,172&#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;2022&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,028&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,692&#160;&lt;/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;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;109&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,285&#160;&lt;/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;&#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;3,629&#160;&lt;/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 future minimum commitments, 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;2,119&#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;22,778&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Rent expense, net of sublease income, incurred under operating leases was $0.5 million and $0.6 million for three months ended June 30, 2021 and 2020, respectively, and $1.1 million and $1.3 million for the six months ended June 30, 2021 and 2020, respectively. Rent expense was offset by sublease income of $0.1 million for the three months ended June 30, 2020 and $0.3 million for the six months ended June 30, 2020. No rent expense was offset by sublease income for the six months ended June 30, 2021.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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-bottom:9.5pt;text-indent: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 June&#160;30, 2021 and December&#160;31, 2020, the Company had an irrevocable letter of credit outstanding related to noncancelable facilities leases in the amounts of $0.7 million, with annual automatic renewal and final expiration date in June 2022. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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-bottom:9.5pt;text-indent: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 has become involved in claims and other legal matters arising in the normal course of business. The Company investigates these claims as they arise and accrues for contingencies when the Company believes that a loss is probable and that the Company can reasonably estimate the amount of any such loss. The Company has made an assessment of the probability of incurring any such losses and whether or not those losses are estimable and although claims are inherently unpredictable the Company concluded that these losses are not material to the Company&#x2019;s business, financial position, results of operations, or cash flows. To the extent 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-bottom: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;Indemnification&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RleHRyZWdpb246OGVjOTcyYTJlNDZmNGNiNmFiNjFmN2E0OGZkNzE0YjBfMzc5Mg_7fa89d34-e3ea-44f7-8d95-a6ef0aa7c563">&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Future annual minimum commitments as of June&#160;30, 2021, are as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:70.374%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.842%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.843%"/&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;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: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;Other&lt;/span&gt;&lt;/div&gt;&lt;div style="text-align:center"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:8pt;font-weight:700;line-height:120%"&gt;Contractual Obligations&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;2021 (for remaining 6 months)&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;982&#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;4,172&#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;2022&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,028&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,692&#160;&lt;/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;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;109&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,285&#160;&lt;/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;&#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;3,629&#160;&lt;/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 future minimum commitments, 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;2,119&#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;22,778&#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;</srt:ContractualObligationFiscalYearMaturityScheduleTableTextBlock>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RhYmxlOjVkYzRjNjU5YTk2YTQzOTdiZTc2OTA1ODViYTljOTExL3RhYmxlcmFuZ2U6NWRjNGM2NTlhOTZhNDM5N2JlNzY5MDU4NWJhOWM5MTFfMS0xLTEtMS0w_748779d5-a24c-4811-9ede-7c3db969bff8"
      unitRef="usd">982000</us-gaap:OperatingLeasesFutureMinimumPaymentsRemainderOfFiscalYear>
    <us-gaap:ContractualObligationFutureMinimumPaymentsDueRemainderOfFiscalYear
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RhYmxlOjVkYzRjNjU5YTk2YTQzOTdiZTc2OTA1ODViYTljOTExL3RhYmxlcmFuZ2U6NWRjNGM2NTlhOTZhNDM5N2JlNzY5MDU4NWJhOWM5MTFfMS0zLTEtMS0w_a2dd8e4b-23f9-48df-a138-e39ffc83bb04"
      unitRef="usd">4172000</us-gaap:ContractualObligationFutureMinimumPaymentsDueRemainderOfFiscalYear>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RhYmxlOjVkYzRjNjU5YTk2YTQzOTdiZTc2OTA1ODViYTljOTExL3RhYmxlcmFuZ2U6NWRjNGM2NTlhOTZhNDM5N2JlNzY5MDU4NWJhOWM5MTFfMi0xLTEtMS0w_8421bff6-c78e-449d-8c3f-2a90495cfada"
      unitRef="usd">1028000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueCurrent>
    <us-gaap:ContractualObligationDueInNextTwelveMonths
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RhYmxlOjVkYzRjNjU5YTk2YTQzOTdiZTc2OTA1ODViYTljOTExL3RhYmxlcmFuZ2U6NWRjNGM2NTlhOTZhNDM5N2JlNzY5MDU4NWJhOWM5MTFfMi0zLTEtMS0w_10c4804e-de41-4292-831f-4dc9a95f7994"
      unitRef="usd">8692000</us-gaap:ContractualObligationDueInNextTwelveMonths>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RhYmxlOjVkYzRjNjU5YTk2YTQzOTdiZTc2OTA1ODViYTljOTExL3RhYmxlcmFuZ2U6NWRjNGM2NTlhOTZhNDM5N2JlNzY5MDU4NWJhOWM5MTFfMy0xLTEtMS0w_73b0fd9b-b248-4d9f-95b7-936c34a5fe02"
      unitRef="usd">109000</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInTwoYears>
    <us-gaap:ContractualObligationDueInSecondYear
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RhYmxlOjVkYzRjNjU5YTk2YTQzOTdiZTc2OTA1ODViYTljOTExL3RhYmxlcmFuZ2U6NWRjNGM2NTlhOTZhNDM5N2JlNzY5MDU4NWJhOWM5MTFfMy0zLTEtMS0w_1ca8bd30-431e-4fbc-a304-dd43092d3fd1"
      unitRef="usd">6285000</us-gaap:ContractualObligationDueInSecondYear>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDueInThreeYears
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RhYmxlOjVkYzRjNjU5YTk2YTQzOTdiZTc2OTA1ODViYTljOTExL3RhYmxlcmFuZ2U6NWRjNGM2NTlhOTZhNDM5N2JlNzY5MDU4NWJhOWM5MTFfNC0xLTEtMS0zMjgz_aac05c94-18cc-4bdf-88ef-16b7889981ff"
      unitRef="usd">0</us-gaap:OperatingLeasesFutureMinimumPaymentsDueInThreeYears>
    <us-gaap:ContractualObligationDueInThirdYear
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RhYmxlOjVkYzRjNjU5YTk2YTQzOTdiZTc2OTA1ODViYTljOTExL3RhYmxlcmFuZ2U6NWRjNGM2NTlhOTZhNDM5N2JlNzY5MDU4NWJhOWM5MTFfNC0zLTEtMS0zMjc0_544b4775-1149-4381-b8a4-cbb4fdfc1abd"
      unitRef="usd">3629000</us-gaap:ContractualObligationDueInThirdYear>
    <us-gaap:OperatingLeasesFutureMinimumPaymentsDue
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RhYmxlOjVkYzRjNjU5YTk2YTQzOTdiZTc2OTA1ODViYTljOTExL3RhYmxlcmFuZ2U6NWRjNGM2NTlhOTZhNDM5N2JlNzY5MDU4NWJhOWM5MTFfNC0xLTEtMS0w_b2f6be91-fb29-4a32-9bf9-0a4743ad1998"
      unitRef="usd">2119000</us-gaap:OperatingLeasesFutureMinimumPaymentsDue>
    <us-gaap:ContractualObligation
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RhYmxlOjVkYzRjNjU5YTk2YTQzOTdiZTc2OTA1ODViYTljOTExL3RhYmxlcmFuZ2U6NWRjNGM2NTlhOTZhNDM5N2JlNzY5MDU4NWJhOWM5MTFfNC0zLTEtMS0w_86f1348c-dbb0-46f0-91e0-dbff19b1c133"
      unitRef="usd">22778000</us-gaap:ContractualObligation>
    <us-gaap:OperatingLeasesRentExpenseNet
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RleHRyZWdpb246OGVjOTcyYTJlNDZmNGNiNmFiNjFmN2E0OGZkNzE0YjBfMTEyMw_80a4f876-fab6-4a6a-a45e-665ebb371466"
      unitRef="usd">500000</us-gaap:OperatingLeasesRentExpenseNet>
    <us-gaap:OperatingLeasesRentExpenseNet
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RleHRyZWdpb246OGVjOTcyYTJlNDZmNGNiNmFiNjFmN2E0OGZkNzE0YjBfMTEzMA_af562686-6af4-4c00-a9be-71b9f46ec3af"
      unitRef="usd">600000</us-gaap:OperatingLeasesRentExpenseNet>
    <us-gaap:OperatingLeasesRentExpenseNet
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RleHRyZWdpb246OGVjOTcyYTJlNDZmNGNiNmFiNjFmN2E0OGZkNzE0YjBfMTA5OTUxMTYzMjk0OA_229c7848-409d-41f7-a9f3-184134031d87"
      unitRef="usd">1100000</us-gaap:OperatingLeasesRentExpenseNet>
    <us-gaap:OperatingLeasesRentExpenseNet
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RleHRyZWdpb246OGVjOTcyYTJlNDZmNGNiNmFiNjFmN2E0OGZkNzE0YjBfMTA5OTUxMTYzMjk1Ng_c086d0fe-adee-45dd-9ad9-d783a4958ecb"
      unitRef="usd">1300000</us-gaap:OperatingLeasesRentExpenseNet>
    <us-gaap:OperatingLeasesIncomeStatementSubleaseRevenue
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RleHRyZWdpb246OGVjOTcyYTJlNDZmNGNiNmFiNjFmN2E0OGZkNzE0YjBfMTIwOA_c8352fc0-090b-4a12-8ecc-635dc3a327c5"
      unitRef="usd">100000</us-gaap:OperatingLeasesIncomeStatementSubleaseRevenue>
    <us-gaap:OperatingLeasesIncomeStatementSubleaseRevenue
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RleHRyZWdpb246OGVjOTcyYTJlNDZmNGNiNmFiNjFmN2E0OGZkNzE0YjBfMTA5OTUxMTYzMjk3MA_0c18cf30-cba0-421d-9871-f0788f8bbf0b"
      unitRef="usd">300000</us-gaap:OperatingLeasesIncomeStatementSubleaseRevenue>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RleHRyZWdpb246OGVjOTcyYTJlNDZmNGNiNmFiNjFmN2E0OGZkNzE0YjBfMTQzNw_2cbf4ff8-a2b9-4e4c-bccf-7cef22c4c165"
      unitRef="usd">700000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:LettersOfCreditOutstandingAmount
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM180OS9mcmFnOjhlYzk3MmEyZTQ2ZjRjYjZhYjYxZjdhNDhmZDcxNGIwL3RleHRyZWdpb246OGVjOTcyYTJlNDZmNGNiNmFiNjFmN2E0OGZkNzE0YjBfMTQzNw_e406e3c3-0bb8-43f5-b4a0-ff35cccf84b5"
      unitRef="usd">700000</us-gaap:LettersOfCreditOutstandingAmount>
    <us-gaap:PreferredStockTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM181NS9mcmFnOmU5NmMzYTg4MDA5NjQyYWQ4NDE2MmQ1YmE3NjE1OTA0L3RleHRyZWdpb246ZTk2YzNhODgwMDk2NDJhZDg0MTYyZDViYTc2MTU5MDRfNzUy_5acd720c-2d6e-43b3-b204-01784f5ddbf9">Convertible Preferred Stock&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Upon completion of the IPO in December 11, 2020, all shares of convertible preferred stock outstanding, totaling 33,443,969 shares, were automatically converted into an equivalent number of shares of Class B common stock on a one-to-one basis and their carrying value of $61.2 million was reclassified into stockholders&#x2019; equity. As of June&#160;30, 2021, there were no shares of convertible preferred stock issued and outstanding.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the IPO, the Company&#x2019;s restated certificate of incorporation became effective, which authorized the issuance of 10,000,000 shares of undesignated preferred stock with a par value of $0.0001 with rights and preferences, including voting rights, designated from time to time by the Company&#x2019;s board of directors.&lt;/span&gt;&lt;/div&gt;</us-gaap:PreferredStockTextBlock>
    <us-gaap:ConvertiblePreferredStockSharesIssuedUponConversion
      contextRef="i29d4590db24f42b29b065a6c6364ab6f_I20201211"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM181NS9mcmFnOmU5NmMzYTg4MDA5NjQyYWQ4NDE2MmQ1YmE3NjE1OTA0L3RleHRyZWdpb246ZTk2YzNhODgwMDk2NDJhZDg0MTYyZDViYTc2MTU5MDRfMTU1_28c5df37-364d-4636-81b9-ec4f38baeec2"
      unitRef="shares">33443969</us-gaap:ConvertiblePreferredStockSharesIssuedUponConversion>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i4a5197bc97764185beadba06d68a93e5_I20201211"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM181NS9mcmFnOmU5NmMzYTg4MDA5NjQyYWQ4NDE2MmQ1YmE3NjE1OTA0L3RleHRyZWdpb246ZTk2YzNhODgwMDk2NDJhZDg0MTYyZDViYTc2MTU5MDRfMzA1_82b7a935-7e88-4fcf-8ebc-a35c9f265248"
      unitRef="usd">61200000</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:PreferredStockSharesAuthorized
      contextRef="ia656bf7d614e4c99b7db05ff76ca3446_I20201211"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM181NS9mcmFnOmU5NmMzYTg4MDA5NjQyYWQ4NDE2MmQ1YmE3NjE1OTA0L3RleHRyZWdpb246ZTk2YzNhODgwMDk2NDJhZDg0MTYyZDViYTc2MTU5MDRfNTY5_e01ed839-6fa9-46d5-a3f9-125d76ba0d51"
      unitRef="shares">10000000</us-gaap:PreferredStockSharesAuthorized>
    <us-gaap:PreferredStockParOrStatedValuePerShare
      contextRef="ia656bf7d614e4c99b7db05ff76ca3446_I20201211"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM181NS9mcmFnOmU5NmMzYTg4MDA5NjQyYWQ4NDE2MmQ1YmE3NjE1OTA0L3RleHRyZWdpb246ZTk2YzNhODgwMDk2NDJhZDg0MTYyZDViYTc2MTU5MDRfNjMx_f7d75a8a-c4b1-46c1-9cd5-133f8ac78d09"
      unitRef="usdPerShare">0.0001</us-gaap:PreferredStockParOrStatedValuePerShare>
    <us-gaap:StockholdersEquityNoteDisclosureTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM181OC9mcmFnOmM5NTAzOTM4YWVkZDQ0Y2NhOTJhMWQ2MzVmNjZlMWI3L3RleHRyZWdpb246Yzk1MDM5MzhhZWRkNDRjY2E5MmExZDYzNWY2NmUxYjdfMjk1Mg_7bedea49-a989-4bec-9e52-f76d65766bcf">Stockholders&#x2019; Notes Receivable and Redeemable Common Stock&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In August 2018, the Company loaned its Chief Executive Officer and Chief Growth Officer a total of $4.0 million under secured nonrecourse promissory notes (the &#x201c;Notes&#x201d;). The Notes bore interest at a rate of 2.42% per annum compounded annually and had a maturity date of August 30, 2021, with interest and principal due at maturity. The Notes were secured by pledges of 1.6 million shares of outstanding common stock of the Company owned by the two officers (the &#x201c;Pledged Shares&#x201d;). The Notes could be prepaid in cash at any time without penalty. At maturity and in certain events of default, the Notes could, at the option of the two officers, be repaid in cash or surrender and cancellation of the Pledged Shares at fair market value. If the Pledged Shares were insufficient to repay the entire amount due under the Notes, then the value of the Pledged Shares would be deemed to be the full amount due under the Notes.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 the Company&#x2019;s only recourse on the Notes and associated interest was the Pledged Shares, the Notes were accounted for as nonrecourse and recorded to stockholders&#x2019; equity as of June&#160;30, 2020. This was accounted for as though the Company repurchased the Pledged Shares and in exchange issued the Notes and granted 1.6 million fully vested stock options with an exercise price equal to the face value of Notes plus interest. No principal or interest payments were paid during the three months ended June 30, 2020. During the quarter ended September 30, 2020, all principal and interest due under the notes were prepaid.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the Notes, the Company provided the officers with a right to sell to the Company outstanding shares of common stock upon settlement of the Notes (the &#x201c;Put Option&#x201d;). The officers could only exercise the Put Option upon repayment of the Notes using the Pledged Shares or upon the prepayment of the Notes using proceeds from the officers&#x2019; sale or disposal of the Pledged Shares at a price less than the face value of the Notes. The Put Option allowed the officers to require the Company to repurchase any or all common stock held or beneficially owned to offset their tax liabilities resulting from the settlement of the Notes via one of the above methods. As the exercisability of the Put Option and therefore redemption of the common stock was outside the control of the Company, all common stock held or beneficially owned by the officers required temporary equity classification. The Company therefore classified $19.0 million of common stock outside of stockholders&#x2019; equity as of June&#160;30, 2020, which represented the fair value of the shares held or beneficially owned on the transaction date. The Company did not adjust the carrying value of the redeemable common stock during the three months ended June 30, 2020 since a redemption event was not probable. The Put Option expired unexercised upon the repayment of the Notes and during the Company&#x2019;s quarter ended September 30, 2020, the $19.0 million of redeemable common stock was reclassified back to common stock.&lt;/span&gt;&lt;/div&gt;Stockholders&#x2019; Equity and Stock Option Plans&lt;div style="margin-bottom: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-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;In connection with the IPO in December 2020, the Company&#x2019;s restated certificate of incorporation became effective, which 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. Class A and Class B common stock are referred to as common stock throughout the notes to the condensed consolidated financial statements, unless otherwise noted.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Upon completion of the IPO, the Company adopted 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 June&#160;30, 2021, the Company has reserved 6,434,712 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. To the extent outstanding awards under the 2017 Plan and the 2006 Plan are forfeited, lapse 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. No new awards were issued under the 2006 Plan or 2017 Plan after the effective date of the 2020 Plan.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of stock option activity under the Company&#x2019;s equity incentive plan and related information is as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&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:45.694%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.720%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.720%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.720%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.723%"/&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;Stock Options&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 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: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 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: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 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: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;Outstanding &#x2014; December 31, 2020&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;8,459,969&#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.53&#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.83&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;215,144&#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;660,466&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;36.74&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;(1,078,838)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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.93&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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/expired&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;(14,484)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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.80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;text-align:left;vertical-align: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; June 30, 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;8,027,113&#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;5.42&#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.98&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;270,368&#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: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;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;text-align:left;vertical-align: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 &#x2014; June 30, 2021&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;5,098,040&#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;2.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;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;5.91&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height: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;185,399&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span&gt;&lt;br/&gt;&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 June&#160;30, 2021, unrecognized stock-based compensation of $20.9 million related to unvested stock options will be recognized on a straight-line basis over a weighted average period of 3.13 years. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;A summary of RSU activity under the Company&#x2019;s equity incentive plan and related information is as follows:&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&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:68.451%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.803%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.805%"/&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;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;/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, 2020&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 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;/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;463,812&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;36.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;/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;(21,973)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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;40.34&#160;&lt;/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;(781)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;31.91&#160;&lt;/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; June 30, 2021&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;441,058&#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;35.84&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 June&#160;30, 2021, unrecognized stock-based compensation of $15.0 million related to unvested RSUs will be recognized on a straight-line basis over a weighted average period of 3.60 years. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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-bottom:9.5pt;text-indent: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 IPO. A total of 500,000 shares of the Company&#x2019;s Class A common stock were initially reserved for issuance under the ESPP.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 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 June&#160;30, 2021, the Company has reserved 834,866 shares of its common stock for issuance under the ESPP. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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, beginning December 9, 2020 through May 31, 2022 with the purchase date on the last day of each purchase period. As of June&#160;30, 2021, $0.4 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 and other current liabilities. For the six months ended June 30, 2021, 155,015 shares of our Class A common stock have been purchased under the ESPP.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 June&#160;30, 2021, unrecognized stock-based compensation expense related to the ESPP was $3.6 million, which is expected to be recognized over a weighted-average period of 0.92 years.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom: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-bottom:9.5pt;text-indent: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 total stock-based compensation recognized in the condensed consolidated statements of operations and comprehensive income is as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&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:42.296%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.428%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.428%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.428%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.583%"/&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:100%"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/td&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;Six Months Ended June 30,&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;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;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;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;204&#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;11&#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;372&#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&#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;579&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;155&#160;&lt;/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;1,290&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;183&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,451&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;363&#160;&lt;/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;1,556&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;226&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;456&#160;&lt;/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&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;3,629&#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;500&#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;6,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 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;995&#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;(500)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;(44)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;(880)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;(83)&lt;/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 stock-based compensation, 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;3,129&#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;456&#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;5,914&#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;912&#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:DebtInstrumentFaceAmount
      contextRef="i5205e1d5adc6440880574cbff0036f47_I20180831"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM181OC9mcmFnOmM5NTAzOTM4YWVkZDQ0Y2NhOTJhMWQ2MzVmNjZlMWI3L3RleHRyZWdpb246Yzk1MDM5MzhhZWRkNDRjY2E5MmExZDYzNWY2NmUxYjdfMTcy_f63b071c-745f-4d3d-b67f-af6ef1d5669c"
      unitRef="usd">4000000.0</us-gaap:DebtInstrumentFaceAmount>
    <us-gaap:DebtInstrumentInterestRateStatedPercentage
      contextRef="i5205e1d5adc6440880574cbff0036f47_I20180831"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM181OC9mcmFnOmM5NTAzOTM4YWVkZDQ0Y2NhOTJhMWQ2MzVmNjZlMWI3L3RleHRyZWdpb246Yzk1MDM5MzhhZWRkNDRjY2E5MmExZDYzNWY2NmUxYjdfMjcw_72685d9f-3140-4a72-b31c-b3b94618a7e8"
      unitRef="number">0.0242</us-gaap:DebtInstrumentInterestRateStatedPercentage>
    <pubm:TemporaryEquityCommonStockSharesIssued
      contextRef="i18fe6ed9aa1f456e8c5c56ad35c265d6_I20180831"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM181OC9mcmFnOmM5NTAzOTM4YWVkZDQ0Y2NhOTJhMWQ2MzVmNjZlMWI3L3RleHRyZWdpb246Yzk1MDM5MzhhZWRkNDRjY2E5MmExZDYzNWY2NmUxYjdfNDE1_a325a804-47ef-40b0-b644-813d29368c1c"
      unitRef="shares">1600000</pubm:TemporaryEquityCommonStockSharesIssued>
    <pubm:TemporaryEquityCommonStockSharesIssued
      contextRef="i18fe6ed9aa1f456e8c5c56ad35c265d6_I20180831"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM181OC9mcmFnOmM5NTAzOTM4YWVkZDQ0Y2NhOTJhMWQ2MzVmNjZlMWI3L3RleHRyZWdpb246Yzk1MDM5MzhhZWRkNDRjY2E5MmExZDYzNWY2NmUxYjdfMTI1Nw_a325a804-47ef-40b0-b644-813d29368c1c"
      unitRef="shares">1600000</pubm:TemporaryEquityCommonStockSharesIssued>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i05df435d63d74f69911dca30030f0295_I20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM181OC9mcmFnOmM5NTAzOTM4YWVkZDQ0Y2NhOTJhMWQ2MzVmNjZlMWI3L3RleHRyZWdpb246Yzk1MDM5MzhhZWRkNDRjY2E5MmExZDYzNWY2NmUxYjdfMjQ1Ng_1dd26a3f-463a-4e5d-91f9-3558dbaa7c1e"
      unitRef="usd">19000000.0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:TemporaryEquityCarryingAmountAttributableToParent
      contextRef="i05df435d63d74f69911dca30030f0295_I20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM181OC9mcmFnOmM5NTAzOTM4YWVkZDQ0Y2NhOTJhMWQ2MzVmNjZlMWI3L3RleHRyZWdpb246Yzk1MDM5MzhhZWRkNDRjY2E5MmExZDYzNWY2NmUxYjdfMjg4MA_1dd26a3f-463a-4e5d-91f9-3558dbaa7c1e"
      unitRef="usd">19000000.0</us-gaap:TemporaryEquityCarryingAmountAttributableToParent>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i1047eb5f2b174e169f23d31777e75e85_I20201211"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMjAz_8379817c-0d60-4980-9333-96676a01ddfa"
      unitRef="shares">1000000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i1047eb5f2b174e169f23d31777e75e85_I20201211"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMjM4_57869c4b-aceb-442d-8167-457e969cefd8"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockSharesAuthorized
      contextRef="i29d4590db24f42b29b065a6c6364ab6f_I20201211"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMjY2_fcc84720-e70e-4af2-8566-a1e24eae6e5d"
      unitRef="shares">1000000000</us-gaap:CommonStockSharesAuthorized>
    <us-gaap:CommonStockParOrStatedValuePerShare
      contextRef="i29d4590db24f42b29b065a6c6364ab6f_I20201211"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMzAx_edde809f-f182-47cc-aad6-e08b519bb640"
      unitRef="usdPerShare">0.0001</us-gaap:CommonStockParOrStatedValuePerShare>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="i0ee4a957d6fa42aaa487b8eb033ee497_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfODUz_0707237b-6dcb-41a6-a945-422a5809bf15"
      unitRef="shares">6434712</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfNTE0MQ_302b1f49-3bfd-43a8-b8dc-8e3d9e85c70d">&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:45.694%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.720%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.720%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.720%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:11.723%"/&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;Stock Options&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 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: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 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: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 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: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;Outstanding &#x2014; December 31, 2020&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;8,459,969&#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.53&#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.83&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;215,144&#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;660,466&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;36.74&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;(1,078,838)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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.93&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 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/expired&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;(14,484)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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.80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 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;text-align:left;vertical-align: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; June 30, 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;8,027,113&#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;5.42&#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.98&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;270,368&#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: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;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;text-align:left;vertical-align: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 &#x2014; June 30, 2021&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;5,098,040&#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;2.71&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;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;5.91&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height: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;185,399&#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;A summary of RSU activity under the Company&#x2019;s equity incentive plan and related information is as follows:&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:100.000%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:68.451%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.803%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.805%"/&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;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;/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, 2020&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 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;/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;463,812&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;36.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;/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;(21,973)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-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;40.34&#160;&lt;/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;(781)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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;31.91&#160;&lt;/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; June 30, 2021&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;441,058&#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;35.84&#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:DisclosureOfShareBasedCompensationArrangementsByShareBasedPaymentAwardTextBlock>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfMi0xLTEtMS0w_0683232f-1405-4eae-94c2-228d6f96be92"
      unitRef="shares">8459969</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfMi0zLTEtMS0w_7bc4194b-b7d1-4ea0-ba2b-9120e5be2afb"
      unitRef="usdPerShare">2.53</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="ibdd58ef7fa234ef396f4e51463c0e14f_D20200101-20201231"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfMi01LTEtMS0w_3e76b4b5-3a49-4b5c-9f70-71259a46df03">P6Y9M29D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfMi03LTEtMS0w_41776b5c-1361-446a-8121-1589c9da1f00"
      unitRef="usd">215144000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfMy0xLTEtMS0w_bfb02601-b29e-4ad1-8b0a-3e5b82f02fee"
      unitRef="shares">660466</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsGrantsInPeriodGross>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfMy0zLTEtMS0w_941d91a8-ac15-44b9-a0a9-972a2b465072"
      unitRef="usdPerShare">36.74</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsGrantsInPeriodWeightedAverageExercisePrice>
    <us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfNC0xLTEtMS0w_7bed3a42-4bfb-4566-9b63-f7bf299877c4"
      unitRef="shares">1078838</us-gaap:StockIssuedDuringPeriodSharesStockOptionsExercised>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfNC0zLTEtMS0w_f9cef85b-76a6-4b66-9848-558c1d94e037"
      unitRef="usdPerShare">1.93</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsExercisesInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfNS0xLTEtMS0w_9aa2468c-b3db-4a74-aa5a-12acce9033fe"
      unitRef="shares">14484</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsForfeituresInPeriod>
    <us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfNS0zLTEtMS0w_febb4469-71e4-4ecf-a2df-f9ae75eaf4bf"
      unitRef="usdPerShare">6.80</us-gaap:ShareBasedCompensationArrangementsByShareBasedPaymentAwardOptionsForfeituresInPeriodWeightedAverageExercisePrice>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfNy0xLTEtMS0w_056c2650-5d12-4891-92fd-4a8adc4591b1"
      unitRef="shares">8027113</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfNy0zLTEtMS0w_23bc2694-9051-4dcb-82e5-bb4d0474dc20"
      unitRef="usdPerShare">5.42</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfNy01LTEtMS0w_d243cf99-ee0a-40fa-ba7a-940078ac65ea">P6Y11M23D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsOutstandingWeightedAverageRemainingContractualTerm2>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfNy03LTEtMS0w_3851ca32-12d0-464b-8951-a2a01561a094"
      unitRef="usd">270368000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsOutstandingIntrinsicValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfOS0xLTEtMS0w_f41ea6f9-465f-4c59-98c7-812f2b7c77eb"
      unitRef="shares">5098040</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfOS0zLTEtMS0w_66db6c21-ccf7-4748-9d60-063a3963888e"
      unitRef="usdPerShare">2.71</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardOptionsExercisableWeightedAverageExercisePrice>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfOS01LTEtMS0w_76e11323-2baf-429d-8228-35f1b2abfa19">P5Y10M28D</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableWeightedAverageRemainingContractualTerm1>
    <us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOmJkZGI0NzY0MjQ3ODRmMGVhYzgyNzBjOWZmMmQzYTQ1L3RhYmxlcmFuZ2U6YmRkYjQ3NjQyNDc4NGYwZWFjODI3MGM5ZmYyZDNhNDVfOS03LTEtMS0w_e10e6e5f-8ade-4824-bc9c-2930f232f3d2"
      unitRef="usd">185399000</us-gaap:SharebasedCompensationArrangementBySharebasedPaymentAwardOptionsExercisableIntrinsicValue1>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions
      contextRef="i5dc22d4e2b634266a39fe55c916cdb1b_I20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMjAwNg_d564d1b5-15e2-47ca-98ab-437a726e0021"
      unitRef="usd">20900000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedStockOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="i64cc3c6223b2426484c08f821db66e36_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMTA5OTUxMTYzNTAwNQ_5547320d-e508-4bbb-b814-58199470dc54">P3Y1M17D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="ia04ce9d590834f0a95ec952793f32cb3_I20201231"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjA5ZjEyZTJlNTkwZDQ4YTg5NWFhYjk2YzFjMDk3YTY4L3RhYmxlcmFuZ2U6MDlmMTJlMmU1OTBkNDhhODk1YWFiOTZjMWMwOTdhNjhfMi0xLTEtMS0w_0bdbe615-452b-491e-9527-10f804c67efa"
      unitRef="shares">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="ia04ce9d590834f0a95ec952793f32cb3_I20201231"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjA5ZjEyZTJlNTkwZDQ4YTg5NWFhYjk2YzFjMDk3YTY4L3RhYmxlcmFuZ2U6MDlmMTJlMmU1OTBkNDhhODk1YWFiOTZjMWMwOTdhNjhfMi0zLTEtMS0w_c13bbf84-0d84-4de3-bd07-7852b424dc92"
      unitRef="usdPerShare">0</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod
      contextRef="ia865ae391ed94a68beb4e3e756157360_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjA5ZjEyZTJlNTkwZDQ4YTg5NWFhYjk2YzFjMDk3YTY4L3RhYmxlcmFuZ2U6MDlmMTJlMmU1OTBkNDhhODk1YWFiOTZjMWMwOTdhNjhfMy0xLTEtMS0w_b6665264-1bca-4fd7-9991-8c966b7639c9"
      unitRef="shares">463812</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue
      contextRef="ia865ae391ed94a68beb4e3e756157360_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjA5ZjEyZTJlNTkwZDQ4YTg5NWFhYjk2YzFjMDk3YTY4L3RhYmxlcmFuZ2U6MDlmMTJlMmU1OTBkNDhhODk1YWFiOTZjMWMwOTdhNjhfMy0zLTEtMS0w_66bd8869-110d-4f7b-8a87-223f08246026"
      unitRef="usdPerShare">36.05</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsGrantsInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod
      contextRef="ia865ae391ed94a68beb4e3e756157360_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjA5ZjEyZTJlNTkwZDQ4YTg5NWFhYjk2YzFjMDk3YTY4L3RhYmxlcmFuZ2U6MDlmMTJlMmU1OTBkNDhhODk1YWFiOTZjMWMwOTdhNjhfNC0xLTEtMS0yNDUz_8125a238-31ea-49db-96ce-47a67ff55b48"
      unitRef="shares">21973</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue
      contextRef="ia865ae391ed94a68beb4e3e756157360_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjA5ZjEyZTJlNTkwZDQ4YTg5NWFhYjk2YzFjMDk3YTY4L3RhYmxlcmFuZ2U6MDlmMTJlMmU1OTBkNDhhODk1YWFiOTZjMWMwOTdhNjhfNC0zLTEtMS0yNDU4_a19091ee-2e0f-47d8-ac24-c594bb523ef3"
      unitRef="usdPerShare">40.34</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsVestedInPeriodWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod
      contextRef="ia865ae391ed94a68beb4e3e756157360_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjA5ZjEyZTJlNTkwZDQ4YTg5NWFhYjk2YzFjMDk3YTY4L3RhYmxlcmFuZ2U6MDlmMTJlMmU1OTBkNDhhODk1YWFiOTZjMWMwOTdhNjhfNS0xLTEtMS0yNDU1_cbe932d1-3a96-49b4-91eb-adb44bbaa087"
      unitRef="shares">781</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeitedInPeriod>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue
      contextRef="ia865ae391ed94a68beb4e3e756157360_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjA5ZjEyZTJlNTkwZDQ4YTg5NWFhYjk2YzFjMDk3YTY4L3RhYmxlcmFuZ2U6MDlmMTJlMmU1OTBkNDhhODk1YWFiOTZjMWMwOTdhNjhfNS0zLTEtMS0yNDU4_fabd2903-e95a-4a93-b157-a5a5eac095f2"
      unitRef="usdPerShare">31.91</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsForfeituresWeightedAverageGrantDateFairValue>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber
      contextRef="idaff69b3e3e0488eaee290b47304a8b5_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjA5ZjEyZTJlNTkwZDQ4YTg5NWFhYjk2YzFjMDk3YTY4L3RhYmxlcmFuZ2U6MDlmMTJlMmU1OTBkNDhhODk1YWFiOTZjMWMwOTdhNjhfNC0xLTEtMS0w_804436cb-006d-4a5f-9b4e-f4e741675d7c"
      unitRef="shares">441058</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedNumber>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue
      contextRef="idaff69b3e3e0488eaee290b47304a8b5_I20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjA5ZjEyZTJlNTkwZDQ4YTg5NWFhYjk2YzFjMDk3YTY4L3RhYmxlcmFuZ2U6MDlmMTJlMmU1OTBkNDhhODk1YWFiOTZjMWMwOTdhNjhfNC0zLTEtMS0w_f9a29629-bd06-4a45-9fc9-0f966a3b3dac"
      unitRef="usdPerShare">35.84</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardEquityInstrumentsOtherThanOptionsNonvestedWeightedAverageGrantDateFairValue>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMjMxNw_3f1288b8-abc0-41d5-b751-f5591387f2f4"
      unitRef="usd">15000000.0</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="ia865ae391ed94a68beb4e3e756157360_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMTA5OTUxMTYzNDk4Mg_b6700552-9835-49a2-87d8-473693a79eb6">P3Y7M6D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="i60a71ea05d524097ab3124710895737c_I20201130"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMjY2OQ_05dc644b-c1af-4bf1-8231-786d4e15d5b9"
      unitRef="shares">500000</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum
      contextRef="idad679e311e04ea680b0d9bd218d0e95_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMzAyMg_6ca8d49a-2a78-4304-ad9e-696e3b302bcc"
      unitRef="number">0.01</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardPercentageOfOutstandingStockMaximum>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized
      contextRef="if2dea39f2c29481d9296e988d326c7d2_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMzYxNw_ae5565ce-0b9e-46c8-9834-48ce1a1c2cb8"
      unitRef="shares">7500000</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardNumberOfSharesAuthorized>
    <us-gaap:CommonStockCapitalSharesReservedForFutureIssuance
      contextRef="i5b3e81f129da4d5aae0f5a8eb54cdb81_I20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMzY4Nw_443b1100-a5a2-4002-8ddf-aa9c8fdb8d14"
      unitRef="shares">834866</us-gaap:CommonStockCapitalSharesReservedForFutureIssuance>
    <us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardDiscountFromMarketPricePurchaseDate
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMzkzOQ_072209d7-e192-45b9-8a9d-ac599d170258"
      unitRef="number">0.85</us-gaap:ShareBasedCompensationArrangementByShareBasedPaymentAwardDiscountFromMarketPricePurchaseDate>
    <pubm:ShareBasedCompensationArrangementByShareBasedPaymentAwardAmountWithheldForEmployeeStockPurchasePlan
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfNDU1MQ_814c877f-6f82-4727-92c3-9ca54eaf14e9"
      unitRef="usd">400000</pubm:ShareBasedCompensationArrangementByShareBasedPaymentAwardAmountWithheldForEmployeeStockPurchasePlan>
    <us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMTA5OTUxMTYzMzk4NQ_e77ac1d7-869a-46af-9ca1-3f267a650749"
      unitRef="shares">155015</us-gaap:StockIssuedDuringPeriodSharesEmployeeStockPurchasePlans>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions
      contextRef="i5b3e81f129da4d5aae0f5a8eb54cdb81_I20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfNDg3Mg_23de1fb4-6c1a-4027-bb6b-62751c1768b0"
      unitRef="usd">3600000</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedShareBasedAwardsOtherThanOptions>
    <us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1
      contextRef="idad679e311e04ea680b0d9bd218d0e95_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfMTA5OTUxMTYzNDk5OA_b4c33a25-6062-4f04-aa9e-ba099b53f433">P0Y11M1D</us-gaap:EmployeeServiceShareBasedCompensationNonvestedAwardsTotalCompensationCostNotYetRecognizedPeriodForRecognition1>
    <us-gaap:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RleHRyZWdpb246YTVhYjRlOWY1NGRkNDg1OTg5ODc3MmE5YmEzMDJmMzJfNTE0MA_a455f95f-6330-4ae1-beac-b6b23a14d5e0">&lt;div style="margin-bottom:9.5pt;text-indent: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 total stock-based compensation recognized in the condensed consolidated statements of operations and comprehensive income is as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&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:42.296%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.428%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.428%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.579%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.428%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:12.583%"/&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:100%"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/td&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;Six Months Ended June 30,&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;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;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;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;204&#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;11&#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;372&#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&#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;579&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;80&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,060&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;155&#160;&lt;/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;1,290&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;183&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,451&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;363&#160;&lt;/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;1,556&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;226&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,911&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;456&#160;&lt;/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&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;3,629&#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;500&#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;6,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 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;995&#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;(500)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;(44)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;(880)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;(83)&lt;/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 stock-based compensation, 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;3,129&#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;456&#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;5,914&#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;912&#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:ScheduleOfEmployeeServiceShareBasedCompensationAllocationOfRecognizedPeriodCostsTextBlock>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i24d8891f46ae4b64a792ebcc21822e98_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfMi0xLTEtMS0w_0ed92ca2-43ad-4bfe-979e-8928a05779f4"
      unitRef="usd">204000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="iee39e043a8dd441795c9914e5f5c966b_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfMi0zLTEtMS0w_7a50c03d-14a4-481c-9a72-9f8145fc4006"
      unitRef="usd">11000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="id927524d8f7e4a6c84ad4f004f69e40a_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfMi01LTEtMS03NDM_4910aacc-70e0-4c9e-888f-b482ba4a0fb1"
      unitRef="usd">372000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ie01a7e7cc183415d8e1352ffe8cf2c02_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfMi03LTEtMS03NDU_0f7c7021-8d86-4425-928b-7dedbf0b7d6c"
      unitRef="usd">21000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i1a4735fdea80482eba4bdb23d6e5b647_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfMy0xLTEtMS0w_34c46634-facf-4845-a231-cc8fcdf00a69"
      unitRef="usd">579000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="icb5a11042523407889453d9ca7c1cbbb_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfMy0zLTEtMS0w_3aa3aca7-d078-4656-8327-38bb97861b8e"
      unitRef="usd">80000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="id2d3b221a4d741a6b84fb65c29819d19_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfMy01LTEtMS03NDM_92466344-9cf5-4221-a61d-043dfe555e08"
      unitRef="usd">1060000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ic61a0a17c5654c7d8a811c8224301cb4_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfMy03LTEtMS03NDU_7388872e-2a35-440e-bca6-43e8e9fe4f99"
      unitRef="usd">155000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i2a60c12f5d14425f9ba7011a7bacb8aa_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNC0xLTEtMS0w_08165d50-32f5-474b-ae64-86ca865d82a6"
      unitRef="usd">1290000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ib97106db397649ae9b56f448bdb5fcc6_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNC0zLTEtMS0w_49a703ec-3163-4dfb-aaf6-b025b9960933"
      unitRef="usd">183000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i240bba25ca1a46099a068aaebc072c01_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNC01LTEtMS03NDM_f0262599-64a8-4131-b4ea-5c2aac6f6d23"
      unitRef="usd">2451000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="id42df71621494e09a242edd8fcf14d6b_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNC03LTEtMS03NDU_d182507b-7c4f-43ff-8ef6-81a1a9efa944"
      unitRef="usd">363000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i889a6d966ca34596b6c197d209a04284_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNS0xLTEtMS0w_2aab838d-9a18-4030-9fc8-854ce76c1ca4"
      unitRef="usd">1556000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i64b58f12f0cc46ff8d849825dd65d987_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNS0zLTEtMS0w_d6794819-73bc-4dcc-a55d-adfcb99b06af"
      unitRef="usd">226000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="ib0deafceef5640cbafe09f80d77fccb6_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNS01LTEtMS03NDM_1d2da957-fa82-4060-9a80-dcfeff58cabf"
      unitRef="usd">2911000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i9b16c33ba4184180bbef77336a4a8cd6_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNS03LTEtMS03NDU_ee32646a-513d-47a6-b6ff-04cdebaaf6f7"
      unitRef="usd">456000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNi0xLTEtMS0w_bc307f4a-06f9-45df-a947-ba20e819e05e"
      unitRef="usd">3629000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNi0zLTEtMS0w_ef959f31-1fa2-4953-ae4e-f1158d9938cb"
      unitRef="usd">500000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNi01LTEtMS0yNjMz_b69ac5aa-c50a-4de5-9ff5-dc880ab4fba0"
      unitRef="usd">6794000</us-gaap:AllocatedShareBasedCompensationExpense>
    <us-gaap:AllocatedShareBasedCompensationExpense
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNi03LTEtMS0yNjMz_77c4f8c1-e835-403e-b08f-72bac88f0246"
      unitRef="usd">995000</us-gaap:AllocatedShareBasedCompensationExpense>
    <pubm:ShareBasedPaymentArrangementTaxBenefit
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNy0xLTEtMS0yOTAx_b36d050b-a890-4635-982a-d57e25b5c86c"
      unitRef="usd">500000</pubm:ShareBasedPaymentArrangementTaxBenefit>
    <pubm:ShareBasedPaymentArrangementTaxBenefit
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNy0zLTEtMS0yOTA4_ff73a2f4-2b71-4726-b509-301eb0688c06"
      unitRef="usd">44000</pubm:ShareBasedPaymentArrangementTaxBenefit>
    <pubm:ShareBasedPaymentArrangementTaxBenefit
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNy01LTEtMS0yOTA1_9d72d7f8-cecb-48df-9896-e05f3bc08f2e"
      unitRef="usd">880000</pubm:ShareBasedPaymentArrangementTaxBenefit>
    <pubm:ShareBasedPaymentArrangementTaxBenefit
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfNy03LTEtMS0yOTEx_e86ca24e-f522-4809-98e0-82b4349380b6"
      unitRef="usd">83000</pubm:ShareBasedPaymentArrangementTaxBenefit>
    <pubm:ShareBasedPaymentArrangementExpenseNet
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfOC0xLTEtMS0yOTE4_3d02c85d-8247-4498-a694-b6afd3c8f968"
      unitRef="usd">3129000</pubm:ShareBasedPaymentArrangementExpenseNet>
    <pubm:ShareBasedPaymentArrangementExpenseNet
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfOC0zLTEtMS0yOTIz_dadb6115-b76d-4ca2-9370-a9a4aa80e433"
      unitRef="usd">456000</pubm:ShareBasedPaymentArrangementExpenseNet>
    <pubm:ShareBasedPaymentArrangementExpenseNet
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfOC01LTEtMS0zNTIx_03fd85e8-a643-406b-aafe-717062db0148"
      unitRef="usd">5914000</pubm:ShareBasedPaymentArrangementExpenseNet>
    <pubm:ShareBasedPaymentArrangementExpenseNet
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182NC9mcmFnOmE1YWI0ZTlmNTRkZDQ4NTk4OTg3NzJhOWJhMzAyZjMyL3RhYmxlOjhiYzg3MTk4ZjM4ODRkYjU5MWY4N2EzOGU5YWM0OGE1L3RhYmxlcmFuZ2U6OGJjODcxOThmMzg4NGRiNTkxZjg3YTM4ZTlhYzQ4YTVfOC03LTEtMS0yOTE5_d10b8099-e7eb-4f7e-be71-437f236a79f8"
      unitRef="usd">912000</pubm:ShareBasedPaymentArrangementExpenseNet>
    <us-gaap:EarningsPerShareTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RleHRyZWdpb246YzczOGNmNzEyZTdhNGNkOWJhZThkZDc1N2NjMDJlMWRfNDkz_23206b76-45ff-4205-8429-c70f5e956c23">Net Income Per Share Attributable to Common Stockholders&lt;div style="margin-bottom:9.5pt;text-indent: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-bottom:9.5pt;text-indent:18pt"&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.159%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.262%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.972%"/&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="border-bottom: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:100%"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="6" 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="6" 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="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;Class A&lt;/span&gt;&lt;/td&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;Class B&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="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;Class A&lt;/span&gt;&lt;/td&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;Class B&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,880&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,041&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;653&#160;&lt;/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;Less: Undistributed earnings allocated to participating securities&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 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;&#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 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;(653)&lt;/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 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;Reallocation of net income attributable to common stockholders&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;(1,366)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;1,366&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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 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;/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 attributable to common stockholders &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,514&#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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,407&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;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;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 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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,565,379&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,013,157&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,106,560&#160;&lt;/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 per share attributable to common stockholders &#x2013; basic:&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;border-top:3pt double #000;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;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 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:#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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,677&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;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;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 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:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,565,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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,013,157&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,106,560&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Options to purchase common 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:100%"&gt;28,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,650,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:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,957,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 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;Restricted 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:100%"&gt;58,112&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;Employee stock purchase plan shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;113,077&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 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:#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;12,764,878&#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="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;43,663,333&#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="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;14,064,502&#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 52pt;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:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;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:#cceeff;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.18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;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:#cceeff;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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;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-bottom:9.5pt;text-indent: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-bottom:9.5pt;text-indent:18pt"&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.159%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.262%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.972%"/&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="border-bottom: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:100%"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="6" 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="6" 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="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;Class A&lt;/span&gt;&lt;/td&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;Class B&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;Class A&lt;/span&gt;&lt;/td&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;Class B&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:9.5pt;font-weight:400;line-height:100%"&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:9pt;font-weight:400;line-height:100%"&gt;665,398&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;724,701&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:9pt;padding-right:2.25pt;text-indent:-9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"&gt;Common stock issuable upon conversion of convertible preferred stock&lt;/span&gt;&lt;/div&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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,443,969&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-left:21pt;padding-right:2.25pt;text-indent:-9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"&gt;Total excludable 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:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;665,398&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34,168,670&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&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.159%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.262%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.972%"/&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="border-bottom: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:100%"&gt;Six months ended June 30,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="6" 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="6" 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="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;Class A&lt;/span&gt;&lt;/td&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;Class B&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="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;Class A&lt;/span&gt;&lt;/td&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;Class B&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,804&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,035&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;1,559&#160;&lt;/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;Less: Undistributed earnings allocated to participating securities&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 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;&#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 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,559)&lt;/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 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;Reallocation of net income attributable to common stockholders&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;(2,879)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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,879&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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 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;/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 attributable to common stockholders &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,925&#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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;11,914&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;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;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 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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,725,389&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,619,813&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,099,356&#160;&lt;/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 per share attributable to common stockholders &#x2013; basic:&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.30&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.30&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;border-top:3pt double #000;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;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 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:#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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,606&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,233&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;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;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 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:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;9,725,389&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;39,619,813&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,099,356&#160;&lt;/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;Options to purchase common 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:100%"&gt;128,589&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,048,315&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,911,367&#160;&lt;/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;Restricted 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:100%"&gt;29,056&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;56,539&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 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:#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;9,939,573&#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="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;46,668,128&#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="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;14,010,723&#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 52pt;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:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.26&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;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:#cceeff;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.26&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;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:#cceeff;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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;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-bottom:9.5pt;text-indent: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-bottom:9.5pt;text-indent:18pt"&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.159%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.262%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.972%"/&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="border-bottom: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:100%"&gt;Six months ended June 30,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="6" 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="6" 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="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;Class A&lt;/span&gt;&lt;/td&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;Class B&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;Class A&lt;/span&gt;&lt;/td&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;Class B&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:9.5pt;font-weight:400;line-height:100%"&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:9pt;font-weight:400;line-height:100%"&gt;556,122&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;765,628&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:9pt;padding-right:2.25pt;text-indent:-9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"&gt;Common stock issuable upon conversion of convertible preferred stock&lt;/span&gt;&lt;/div&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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,443,969&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-left:21pt;padding-right:2.25pt;text-indent:-9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"&gt;Total excludable 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:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;556,122&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34,209,597&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:EarningsPerShareTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareBasicByCommonClassTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RleHRyZWdpb246YzczOGNmNzEyZTdhNGNkOWJhZThkZDc1N2NjMDJlMWRfNDkx_1d6f77ec-8cb7-4dfb-998a-ec851a285160">&lt;div style="margin-bottom:9.5pt;text-indent: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-bottom:9.5pt;text-indent:18pt"&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.159%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.262%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.972%"/&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="border-bottom: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:100%"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="6" 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="6" 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="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;Class A&lt;/span&gt;&lt;/td&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;Class B&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="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;Class A&lt;/span&gt;&lt;/td&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;Class B&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,880&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,041&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;653&#160;&lt;/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;Less: Undistributed earnings allocated to participating securities&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 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;&#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 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;(653)&lt;/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 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;Reallocation of net income attributable to common stockholders&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;(1,366)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;1,366&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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 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;/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 attributable to common stockholders &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,514&#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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,407&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;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;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 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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,565,379&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,013,157&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,106,560&#160;&lt;/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 per share attributable to common stockholders &#x2013; basic:&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;border-top:3pt double #000;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;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 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:#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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,677&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;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;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 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:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,565,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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,013,157&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,106,560&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Options to purchase common 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:100%"&gt;28,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,650,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:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,957,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 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;Restricted 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:100%"&gt;58,112&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;Employee stock purchase plan shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;113,077&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 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:#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;12,764,878&#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="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;43,663,333&#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="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;14,064,502&#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 52pt;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:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;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:#cceeff;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.18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;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:#cceeff;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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;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-bottom:9.5pt;text-indent: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-bottom:9.5pt;text-indent:18pt"&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.159%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.262%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.972%"/&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="border-bottom: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:100%"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="6" 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="6" 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="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;Class A&lt;/span&gt;&lt;/td&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;Class B&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;Class A&lt;/span&gt;&lt;/td&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;Class B&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:9.5pt;font-weight:400;line-height:100%"&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:9pt;font-weight:400;line-height:100%"&gt;665,398&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;724,701&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:9pt;padding-right:2.25pt;text-indent:-9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"&gt;Common stock issuable upon conversion of convertible preferred stock&lt;/span&gt;&lt;/div&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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,443,969&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-left:21pt;padding-right:2.25pt;text-indent:-9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"&gt;Total excludable 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:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;665,398&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34,168,670&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEarningsPerShareBasicByCommonClassTextBlock>
    <us-gaap:ScheduleOfEarningsPerShareDilutedByCommonClassTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RleHRyZWdpb246YzczOGNmNzEyZTdhNGNkOWJhZThkZDc1N2NjMDJlMWRfNDkx_f1c6b1c6-8463-440d-9119-6858d4b6e527">&lt;div style="margin-bottom:9.5pt;text-indent: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-bottom:9.5pt;text-indent:18pt"&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.159%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.262%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.972%"/&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="border-bottom: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:100%"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="6" 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="6" 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="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;Class A&lt;/span&gt;&lt;/td&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;Class B&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="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;Class A&lt;/span&gt;&lt;/td&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;Class B&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,880&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,041&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;653&#160;&lt;/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;Less: Undistributed earnings allocated to participating securities&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 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;&#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 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;(653)&lt;/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 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;Reallocation of net income attributable to common stockholders&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;(1,366)&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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;1,366&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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 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;/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 attributable to common stockholders &#x2013; basic&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,514&#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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,407&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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 style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;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;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 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:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,565,379&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,013,157&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,106,560&#160;&lt;/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 per share attributable to common stockholders &#x2013; basic:&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;0.20&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;border-top:3pt double #000;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;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 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:#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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;2,244&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;7,677&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;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;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 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:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;12,565,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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,013,157&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#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="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;10,106,560&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/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;Options to purchase common 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:100%"&gt;28,310&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;6,650,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:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;3,957,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 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;Restricted 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:100%"&gt;58,112&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:2px 1pt 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;Employee stock purchase plan shares&lt;/span&gt;&lt;/td&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;113,077&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt 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:#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;12,764,878&#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="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;43,663,333&#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="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;14,064,502&#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 52pt;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:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;0.18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;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:#cceeff;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.18&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;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:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:3pt double #000000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td style="background-color:#cceeff;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:#cceeff;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;&#x2014;&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;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-bottom:9.5pt;text-indent: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-bottom:9.5pt;text-indent:18pt"&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.159%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.262%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.972%"/&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="border-bottom: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:100%"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="6" 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="6" 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="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;Class A&lt;/span&gt;&lt;/td&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;Class B&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;Class A&lt;/span&gt;&lt;/td&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;Class B&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:9.5pt;font-weight:400;line-height:100%"&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:9pt;font-weight:400;line-height:100%"&gt;665,398&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;724,701&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:9pt;padding-right:2.25pt;text-indent:-9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"&gt;Common stock issuable upon conversion of convertible preferred stock&lt;/span&gt;&lt;/div&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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,443,969&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-left:21pt;padding-right:2.25pt;text-indent:-9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"&gt;Total excludable 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:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;665,398&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34,168,670&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfEarningsPerShareDilutedByCommonClassTextBlock>
    <us-gaap:NetIncomeLoss
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfNS0xLTEtMS0w_006e4cd8-5e32-4fd5-b977-453c3ccdf973"
      unitRef="usd">3880000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfNS0yLTEtMS0w_3e235e60-2b4b-46be-9f72-93371be62c7d"
      unitRef="usd">6041000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfNS00LTEtMS0w_cc3544cf-a148-4eba-b636-a3042eaf8c97"
      unitRef="usd">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfNS01LTEtMS0w_2c56a863-0877-4207-9fb2-50461dc76b68"
      unitRef="usd">653000</us-gaap:NetIncomeLoss>
    <us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfNi0xLTEtMS0w_246cbcf0-2d54-49b3-ba09-e16b4bee9bc4"
      unitRef="usd">0</us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic>
    <us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfNi0yLTEtMS0w_1568fbc5-afbd-49da-8969-f09e4e63e6ad"
      unitRef="usd">0</us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic>
    <us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfNi00LTEtMS0w_7ae0d6b5-edb1-499f-8298-20436c1fc190"
      unitRef="usd">0</us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic>
    <us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfNi01LTEtMS0w_54c0d4e5-5826-4afd-a65a-a2ce9b6a2890"
      unitRef="usd">653000</us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic>
    <pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfNy0xLTEtMS0w_e212f8f4-59aa-4b3c-9134-53ec7065bdb9"
      unitRef="usd">1366000</pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders>
    <pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfNy0yLTEtMS0w_4f6f976a-27b0-4901-b447-b787568a1b28"
      unitRef="usd">-1366000</pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders>
    <pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfNy00LTEtMS0w_1753572c-3f1d-40ac-8f95-af7226ad31ed"
      unitRef="usd">0</pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders>
    <pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfNy01LTEtMS0w_6a29f3e9-1f76-48e1-b20f-b699dabcdbbe"
      unitRef="usd">0</pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfOC0xLTEtMS0w_ccc5ed07-3cce-4ce6-aaab-100babd529b6"
      unitRef="usd">2514000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfOC0yLTEtMS0w_33ca0904-39e5-4b00-b554-9596a1d96029"
      unitRef="usd">7407000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfOC00LTEtMS0w_56bde59d-4544-4dba-9710-4f808edf93cf"
      unitRef="usd">0</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfOC01LTEtMS0w_956f50c2-a390-4eb6-ae2e-a768b7972574"
      unitRef="usd">0</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTAtMS0xLTEtMA_12f0d337-57bc-4783-a59c-97e5beec5c2d"
      unitRef="shares">12565379</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTAtMi0xLTEtMA_86e62825-2b3c-4c2a-a058-a6562c052508"
      unitRef="shares">37013157</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTAtNC0xLTEtMA_a06806da-874e-4318-949f-6c718d38d2e7"
      unitRef="shares">0</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTAtNS0xLTEtMA_c7450fdf-8781-460c-b426-d45ea472eb22"
      unitRef="shares">10106560</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTEtMS0xLTEtMA_23c4198c-f683-419b-9a64-4883a65e6fbc"
      unitRef="usdPerShare">0.20</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTEtMi0xLTEtMA_239ae872-f981-4859-ab1a-9f5885799b4d"
      unitRef="usdPerShare">0.20</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTEtNC0xLTEtMA_03ca0c76-969a-4e71-a20b-fa9eefec5747"
      unitRef="usdPerShare">0</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTEtNS0xLTEtMA_23ab35a7-9462-4c88-a6ba-45c31ed4bc00"
      unitRef="usdPerShare">0</us-gaap:EarningsPerShareBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTMtMS0xLTEtMA_e7319960-c754-4e15-b92e-34d57fb9a999"
      unitRef="usd">2244000</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTMtMi0xLTEtMA_229a0309-2cd0-455d-b3af-71593845e8a6"
      unitRef="usd">7677000</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTMtNC0xLTEtMA_2c2172b0-b539-46ba-b57c-b60471ce1b3b"
      unitRef="usd">0</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTMtNS0xLTEtMA_18bdcfe6-65d3-42f8-8d0e-efb5b015fefb"
      unitRef="usd">0</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTUtMS0xLTEtMA_ba2e52ea-ca36-47d4-8486-92cbb47e90dd"
      unitRef="shares">12565379</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTUtMi0xLTEtMA_91a2305b-34b2-45ec-91cc-8d5bea89b68a"
      unitRef="shares">37013157</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTUtNC0xLTEtMA_107e8a59-f2b8-4633-80bb-ed1a29ad1309"
      unitRef="shares">0</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTUtNS0xLTEtMA_26469a65-1349-4e22-84f7-e17572471c0d"
      unitRef="shares">10106560</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTYtMS0xLTEtMA_b8426d15-083e-4373-a46f-f997665f5e83"
      unitRef="shares">28310</pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions>
    <pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTYtMi0xLTEtMA_b1e6f637-5b4a-4609-9cbc-30b50a774f4e"
      unitRef="shares">6650176</pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions>
    <pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTYtNC0xLTEtMA_5e0c5f79-8ca4-43e9-8a23-b3d79fe3341c"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions>
    <pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTYtNS0xLTEtMA_1b2bcf3c-a947-4eec-8548-b29df8f15da1"
      unitRef="shares">3957942</pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions>
    <pubm:IncrementalCommonSharesAttributableToRestrictedStock
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTctMS0xLTEtMzIyNw_8dc498d5-606f-4f8e-88b7-1285c2a5784e"
      unitRef="shares">58112</pubm:IncrementalCommonSharesAttributableToRestrictedStock>
    <pubm:IncrementalCommonSharesAttributableToRestrictedStock
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTctMi0xLTEtMzIyNw_61648c0e-372f-47f8-b799-1350677c964f"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToRestrictedStock>
    <pubm:IncrementalCommonSharesAttributableToRestrictedStock
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTctNC0xLTEtMzIzMA_3b6af190-426d-4014-a2be-72d2f4d85bb9"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToRestrictedStock>
    <pubm:IncrementalCommonSharesAttributableToRestrictedStock
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTctNS0xLTEtMzIzMA_cf7573b7-0851-408f-918d-c84c05f4d6d3"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToRestrictedStock>
    <pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTctMS0xLTEtMjkzNw_8c84ce4b-1e4a-47cf-969b-553def0d78b1"
      unitRef="shares">113077</pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan>
    <pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTctMi0xLTEtMjkzNw_c24c3d86-df9d-4413-a554-4954d4eee2dc"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan>
    <pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTctNC0xLTEtMjkzOQ_f011c9b4-5339-41b2-9339-db98bede729e"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan>
    <pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTctNS0xLTEtMjkzOQ_884ddb14-db26-41a2-94d3-b26a15a1ad4e"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTgtMS0xLTEtMA_4fecdf20-77cf-4a5c-95ba-437afc3ae67e"
      unitRef="shares">12764878</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTgtMi0xLTEtMA_bb7b23c4-9ce8-4163-9f88-aea164c85f35"
      unitRef="shares">43663333</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTgtNC0xLTEtMA_152d53c7-e292-4e85-bdd3-f841887e0782"
      unitRef="shares">0</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTgtNS0xLTEtMA_1bacb9e0-9085-404b-87be-e9da881541f0"
      unitRef="shares">14064502</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTktMS0xLTEtMA_abee49bd-0863-4381-8844-8e75112842e4"
      unitRef="usdPerShare">0.18</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTktMi0xLTEtMA_82186532-8c76-4c67-b882-254f2a1380c6"
      unitRef="usdPerShare">0.18</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTktNC0xLTEtMA_effb2ee3-3718-4c14-8818-b0c75259572e"
      unitRef="usdPerShare">0</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjI0NDlkNTUzYjJkMzQyYzk5ZDZmNTg4NmQ2OGQ1MjA5L3RhYmxlcmFuZ2U6MjQ0OWQ1NTNiMmQzNDJjOTlkNmY1ODg2ZDY4ZDUyMDlfMTktNS0xLTEtMA_c021721b-75f4-4e04-bbb3-ff2d31f103b2"
      unitRef="usdPerShare">0</us-gaap:EarningsPerShareDiluted>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ic28086ab3ca44c868fa13b07e408db6b_D20210401-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjQ4NzgzOTBjMTE4MDQ2ZTNhOTkzYTA2MDQxN2RjN2I1L3RhYmxlcmFuZ2U6NDg3ODM5MGMxMTgwNDZlM2E5OTNhMDYwNDE3ZGM3YjVfMy0xLTEtMS0xMTkx_20184b76-5b00-4e90-98f7-b1568bf37bfa"
      unitRef="shares">665398</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="id5abfe55fd854e629761f3debadfc8c5_D20210401-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjQ4NzgzOTBjMTE4MDQ2ZTNhOTkzYTA2MDQxN2RjN2I1L3RhYmxlcmFuZ2U6NDg3ODM5MGMxMTgwNDZlM2E5OTNhMDYwNDE3ZGM3YjVfMy0yLTEtMS0xMTkx_257b07f3-103d-4d4b-bca5-e2a5e3fbc612"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ic13fba35d7f14dbf9ba64870cc64776e_D20200401-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjQ4NzgzOTBjMTE4MDQ2ZTNhOTkzYTA2MDQxN2RjN2I1L3RhYmxlcmFuZ2U6NDg3ODM5MGMxMTgwNDZlM2E5OTNhMDYwNDE3ZGM3YjVfMy00LTEtMS0xMTkx_a4104d4d-796f-41f1-8ff5-6036ccc29f2d"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i0acde90882234ee899aee25b7f6306f4_D20200401-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjQ4NzgzOTBjMTE4MDQ2ZTNhOTkzYTA2MDQxN2RjN2I1L3RhYmxlcmFuZ2U6NDg3ODM5MGMxMTgwNDZlM2E5OTNhMDYwNDE3ZGM3YjVfMy01LTEtMS0xMTkx_7ee9bc48-f295-4846-8858-9fd83254d754"
      unitRef="shares">724701</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="iee9c00e7bee04e1fa2e891cdd00ce933_D20210401-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjQ4NzgzOTBjMTE4MDQ2ZTNhOTkzYTA2MDQxN2RjN2I1L3RhYmxlcmFuZ2U6NDg3ODM5MGMxMTgwNDZlM2E5OTNhMDYwNDE3ZGM3YjVfNC0xLTEtMS0xMTkx_0f7b848e-a5f3-4299-9aaf-b6c6d3cb8a17"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i6360aa5105354c8da4cdaf6bccae7162_D20210401-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjQ4NzgzOTBjMTE4MDQ2ZTNhOTkzYTA2MDQxN2RjN2I1L3RhYmxlcmFuZ2U6NDg3ODM5MGMxMTgwNDZlM2E5OTNhMDYwNDE3ZGM3YjVfNC0yLTEtMS0xMTkx_78ae1027-e325-4579-9149-f14689fc1d43"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i21739dbe54ab404081f7633d544557a3_D20200401-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjQ4NzgzOTBjMTE4MDQ2ZTNhOTkzYTA2MDQxN2RjN2I1L3RhYmxlcmFuZ2U6NDg3ODM5MGMxMTgwNDZlM2E5OTNhMDYwNDE3ZGM3YjVfNC00LTEtMS0xMTkx_8c30e225-0906-4a2e-af33-00448fe385b0"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i006a767bedfd473f87b0c4a33e478f4c_D20200401-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjQ4NzgzOTBjMTE4MDQ2ZTNhOTkzYTA2MDQxN2RjN2I1L3RhYmxlcmFuZ2U6NDg3ODM5MGMxMTgwNDZlM2E5OTNhMDYwNDE3ZGM3YjVfNC01LTEtMS0xMTkx_ae235a1e-603f-4965-81f7-08533b3e44b0"
      unitRef="shares">33443969</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i0ca5583a8abd4346bf509f9e44d46e67_D20210401-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjQ4NzgzOTBjMTE4MDQ2ZTNhOTkzYTA2MDQxN2RjN2I1L3RhYmxlcmFuZ2U6NDg3ODM5MGMxMTgwNDZlM2E5OTNhMDYwNDE3ZGM3YjVfNS0xLTEtMS0yNjM4_7968f758-207d-403c-8b4a-f4e30e37af38"
      unitRef="shares">665398</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i3ddb78f6b0164066a339e6ce17929079_D20210401-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjQ4NzgzOTBjMTE4MDQ2ZTNhOTkzYTA2MDQxN2RjN2I1L3RhYmxlcmFuZ2U6NDg3ODM5MGMxMTgwNDZlM2E5OTNhMDYwNDE3ZGM3YjVfNS0yLTEtMS0yNjM4_9146aa3d-34a0-46a9-ac1b-526b0fdd637f"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i0c65e2fa9e9945be87fff5c81391f1aa_D20200401-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjQ4NzgzOTBjMTE4MDQ2ZTNhOTkzYTA2MDQxN2RjN2I1L3RhYmxlcmFuZ2U6NDg3ODM5MGMxMTgwNDZlM2E5OTNhMDYwNDE3ZGM3YjVfNS00LTEtMS0yNjM4_5cee2b3c-e7f7-44bd-b00b-4c2aa7da705f"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i3a874ce9bf134f79a57e9f717733dd3a_D20200401-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOjQ4NzgzOTBjMTE4MDQ2ZTNhOTkzYTA2MDQxN2RjN2I1L3RhYmxlcmFuZ2U6NDg3ODM5MGMxMTgwNDZlM2E5OTNhMDYwNDE3ZGM3YjVfNS01LTEtMS0yNjM4_dfda8a99-2676-41a7-a02d-23412a7fdd32"
      unitRef="shares">34168670</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:NetIncomeLoss
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfNS0xLTEtMS0xMTY0_c97b5eea-6a05-4d4a-ae14-6d946c0013b9"
      unitRef="usd">5804000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfNS0yLTEtMS0xMTY0_40622870-00e8-4f9a-9595-b0c0075ca679"
      unitRef="usd">9035000</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfNS00LTEtMS0xMTY4_2651e772-1ae7-49cc-b83d-b227002bbf42"
      unitRef="usd">0</us-gaap:NetIncomeLoss>
    <us-gaap:NetIncomeLoss
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfNS01LTEtMS0xMTY4_d28bd9b9-58b7-4c35-b568-37991e723ce5"
      unitRef="usd">1559000</us-gaap:NetIncomeLoss>
    <us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfNi0xLTEtMS0xMTY0_5cafc8b8-e94b-4247-b5f4-63ed2bd1953d"
      unitRef="usd">0</us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic>
    <us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfNi0yLTEtMS0xMTY0_01684eda-8a81-46f0-8b74-f655d6023798"
      unitRef="usd">0</us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic>
    <us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfNi00LTEtMS0xMTY4_63c83a3b-8113-44c3-a9a4-a8c0a87fc017"
      unitRef="usd">0</us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic>
    <us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfNi01LTEtMS0xMTY4_596ce129-edf8-4893-878c-690add87ea12"
      unitRef="usd">1559000</us-gaap:UndistributedEarningsLossAllocatedToParticipatingSecuritiesBasic>
    <pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfNy0xLTEtMS0xMTY0_7f134232-b467-4cae-87a5-64d8908605b5"
      unitRef="usd">2879000</pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders>
    <pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfNy0yLTEtMS0xMTY0_0008249d-283c-4450-920f-db7b93dcadd3"
      unitRef="usd">-2879000</pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders>
    <pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfNy00LTEtMS0xMTY4_6fc3ef2c-9332-4d15-a199-23367ecb0c10"
      unitRef="usd">0</pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders>
    <pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfNy01LTEtMS0xMTY4_21a3ecfb-865c-4448-9792-04911699337d"
      unitRef="usd">0</pubm:ReallocationOfNetIncomeLossAttributableToCommonStockholders>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfOC0xLTEtMS0yNjM2_692f40d5-bac5-4d65-bc0a-01167725634f"
      unitRef="usd">2925000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfOC0yLTEtMS0yNjM2_d1a213e5-ea9b-47a1-837d-15c388ba4524"
      unitRef="usd">11914000</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfOC00LTEtMS0yNjM2_ba8f6044-057a-4270-a078-70fad0d2ed28"
      unitRef="usd">0</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfOC01LTEtMS0yNjM2_c979e8b3-7628-4409-9bfd-ec36f46ebb05"
      unitRef="usd">0</us-gaap:NetIncomeLossAvailableToCommonStockholdersBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTAtMS0xLTEtMTE3MQ_7f5692a3-71d6-4271-80b2-f80096a1fc14"
      unitRef="shares">9725389</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTAtMi0xLTEtMTE3MQ_afc8066d-cc22-4d5f-87e3-4d0f98873635"
      unitRef="shares">39619813</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTAtNC0xLTEtMTE3NA_17efc03a-433f-4f40-b5b5-fd6af3e5bb5f"
      unitRef="shares">0</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTAtNS0xLTEtMTE3NA_90b23e25-f065-4f21-b8c2-898e9af66f78"
      unitRef="shares">10099356</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTEtMS0xLTEtMjYzNg_1125a54c-caad-4ea5-8e81-6b0ffb81f44b"
      unitRef="usdPerShare">0.30</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTEtMi0xLTEtMjYzNg_e80c2882-5abb-47ac-9007-bab17317d6d3"
      unitRef="usdPerShare">0.30</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTEtNC0xLTEtMjYzNg_80c18922-d365-41be-8208-ef0c2a1b7abc"
      unitRef="usdPerShare">0</us-gaap:EarningsPerShareBasic>
    <us-gaap:EarningsPerShareBasic
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTEtNS0xLTEtMjYzNg_b14c485e-b126-4aa8-be88-14ea8923028c"
      unitRef="usdPerShare">0</us-gaap:EarningsPerShareBasic>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTMtMS0xLTEtMTE3Nw_b8772631-b79d-4598-9b73-1cb6e5a824b4"
      unitRef="usd">2606000</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTMtMi0xLTEtMTE3Nw_33a17b9a-0b16-4922-9446-0228f8d5a549"
      unitRef="usd">12233000</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTMtNC0xLTEtMTE4MA_c47c74ff-9e3a-4b7a-9729-9aba6bde067c"
      unitRef="usd">0</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTMtNS0xLTEtMTE4MA_799ab47d-5115-4167-af47-dfa4f120e2ee"
      unitRef="usd">0</us-gaap:NetIncomeLossAvailableToCommonStockholdersDiluted>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTUtMS0xLTEtMTE4Mw_c0508916-1b00-4021-9ef9-ca2b10828d80"
      unitRef="shares">9725389</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTUtMi0xLTEtMTE4Mw_9a827227-cd91-4627-96f8-cae8f7ce4595"
      unitRef="shares">39619813</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTUtNC0xLTEtMTE4Nw_b35ba588-899b-4dd9-8642-6fb9c6fdb95b"
      unitRef="shares">0</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <us-gaap:WeightedAverageNumberOfSharesOutstandingBasic
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTUtNS0xLTEtMTE4Nw_0f4e0d19-c1af-4dc7-9a96-a65d3d412c83"
      unitRef="shares">10099356</us-gaap:WeightedAverageNumberOfSharesOutstandingBasic>
    <pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTYtMS0xLTEtMTE4Mw_afe4488c-120b-479d-ac33-565a4862d7e1"
      unitRef="shares">128589</pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions>
    <pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTYtMi0xLTEtMTE4Mw_b10f4db0-e349-410c-9718-fd4d13b41ea6"
      unitRef="shares">7048315</pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions>
    <pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTYtNC0xLTEtMTE4Nw_4107d6a9-bd9a-4c64-a549-41181c9f54d8"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions>
    <pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTYtNS0xLTEtMTE4Nw_02ae0a4f-bbe6-47a6-9c67-8a676968afdf"
      unitRef="shares">3911367</pubm:IncrementalCommonSharesAttributableToDilutiveEffectOfCallOptions>
    <pubm:IncrementalCommonSharesAttributableToRestrictedStock
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTctMS0xLTEtMzI0Mg_a1dc2512-bedc-4095-8607-ca47ed22874c"
      unitRef="shares">29056</pubm:IncrementalCommonSharesAttributableToRestrictedStock>
    <pubm:IncrementalCommonSharesAttributableToRestrictedStock
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTctMi0xLTEtMzI0Mg_e636212f-d75d-4a22-b94a-99fa93313db3"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToRestrictedStock>
    <pubm:IncrementalCommonSharesAttributableToRestrictedStock
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTctNC0xLTEtMzI0Ng_2851810b-12c9-4667-bd05-e4916ac68486"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToRestrictedStock>
    <pubm:IncrementalCommonSharesAttributableToRestrictedStock
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTctNS0xLTEtMzI0Ng_138a7a19-3b99-4fa2-b72d-30179c197998"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToRestrictedStock>
    <pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTctMS0xLTEtMjk0NA_cde5f2b7-094d-4974-a800-729f3888dcee"
      unitRef="shares">56539</pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan>
    <pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTctMi0xLTEtMjk0NA_d1054260-1de4-468a-b1b6-e38fadff22bf"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan>
    <pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTctNC0xLTEtMjk0OA_4e73ac07-0503-45af-a286-c5142afd3a24"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan>
    <pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTctNS0xLTEtMjk0OA_b81bf2bb-5318-4a2f-8626-6b898afa9c35"
      unitRef="shares">0</pubm:IncrementalCommonSharesAttributableToEmployeeStockPurchasePlan>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTctMS0xLTEtMjYzNg_bf0ee197-d765-47f8-9b6d-433b9c111b1d"
      unitRef="shares">9939573</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTctMi0xLTEtMjYzNg_fc2688ff-7974-4c95-8025-460e03b8eed6"
      unitRef="shares">46668128</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTctNC0xLTEtMjYzNg_bfbdbdb3-bd5c-412c-b068-23cf239d1ca2"
      unitRef="shares">0</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="0"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTctNS0xLTEtMjYzNg_ee12b7ff-f031-4fd7-9339-e053edf27060"
      unitRef="shares">14010723</us-gaap:WeightedAverageNumberOfDilutedSharesOutstanding>
    <us-gaap:EarningsPerShareDiluted
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTgtMS0xLTEtMjYzNg_16f3293c-4610-4e33-a6a2-054603cfb986"
      unitRef="usdPerShare">0.26</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTgtMi0xLTEtMjYzNg_083b5fb5-dc29-469c-aca0-72f69e1a6fdb"
      unitRef="usdPerShare">0.26</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTgtNC0xLTEtMjYzNg_042945f0-e1f9-428c-9ce6-ee1f42b541f0"
      unitRef="usdPerShare">0</us-gaap:EarningsPerShareDiluted>
    <us-gaap:EarningsPerShareDiluted
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmY5NzhmMzQ1OGFlNjRkYzU4YWM0NmNiNmY0Mjc4YzQyL3RhYmxlcmFuZ2U6Zjk3OGYzNDU4YWU2NGRjNThhYzQ2Y2I2ZjQyNzhjNDJfMTgtNS0xLTEtMjYzNg_2c9f4eb7-1d5a-4a8b-a074-e7cb9b6851b0"
      unitRef="usdPerShare">0</us-gaap:EarningsPerShareDiluted>
    <us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RleHRyZWdpb246YzczOGNmNzEyZTdhNGNkOWJhZThkZDc1N2NjMDJlMWRfNDky_d9b68064-4c0c-4bf0-b0e9-3c905ee5c53c">&lt;div style="margin-bottom:9.5pt;text-indent: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-bottom:9.5pt;text-indent:18pt"&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.159%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.262%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.969%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:8.972%"/&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="border-bottom: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:100%"&gt;Six months ended June 30,&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan="3" style="padding:0 1pt"/&gt;&lt;td colspan="6" 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="6" 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="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;Class A&lt;/span&gt;&lt;/td&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;Class B&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;Class A&lt;/span&gt;&lt;/td&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;Class B&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:9.5pt;font-weight:400;line-height:100%"&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:9pt;font-weight:400;line-height:100%"&gt;556,122&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;765,628&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:9pt;padding-right:2.25pt;text-indent:-9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"&gt;Common stock issuable upon conversion of convertible preferred stock&lt;/span&gt;&lt;/div&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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:2px 1pt;text-align:right;vertical-align:middle"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;33,443,969&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-left:21pt;padding-right:2.25pt;text-indent:-9pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9.5pt;font-weight:400;line-height:100%"&gt;Total excludable 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:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;556,122&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="3" style="background-color:#cceeff;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:9pt;font-weight:400;line-height:100%"&gt;&#x2014;&lt;/span&gt;&lt;/td&gt;&lt;td colspan="3" style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000000;padding:2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:9pt;font-weight:400;line-height:100%"&gt;34,209,597&lt;/span&gt;&lt;/td&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;</us-gaap:ScheduleOfAntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareTextBlock>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i8fe62f5760b54075b95ce16c52b8c53b_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmM5OWNlMzU1MzFhZjRiYmY4YjU1NzFlNmU2ODIwNDI2L3RhYmxlcmFuZ2U6Yzk5Y2UzNTUzMWFmNGJiZjhiNTU3MWU2ZTY4MjA0MjZfMy0xLTEtMS0w_62ea4c1c-44b2-41e6-a46d-7267c2ecdc3e"
      unitRef="shares">556122</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ib18575647d3546cfbd50d6bf6db90a54_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmM5OWNlMzU1MzFhZjRiYmY4YjU1NzFlNmU2ODIwNDI2L3RhYmxlcmFuZ2U6Yzk5Y2UzNTUzMWFmNGJiZjhiNTU3MWU2ZTY4MjA0MjZfMy0yLTEtMS0w_d866e2ee-8edb-498f-ac20-d3a9e9dde242"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="iea9714b933ff41c29a94988dd91418f1_D20200101-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmM5OWNlMzU1MzFhZjRiYmY4YjU1NzFlNmU2ODIwNDI2L3RhYmxlcmFuZ2U6Yzk5Y2UzNTUzMWFmNGJiZjhiNTU3MWU2ZTY4MjA0MjZfMy00LTEtMS0w_03289efb-21ae-4a3a-aa66-a4e7f39efc39"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i636f8e1b0c3a4d5aa63fd047996fe330_D20200101-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmM5OWNlMzU1MzFhZjRiYmY4YjU1NzFlNmU2ODIwNDI2L3RhYmxlcmFuZ2U6Yzk5Y2UzNTUzMWFmNGJiZjhiNTU3MWU2ZTY4MjA0MjZfMy01LTEtMS0w_e356aa61-d115-47c9-9c88-431a3c5fff89"
      unitRef="shares">765628</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i8b55e609280741cfa6dbb6583ae8c4a7_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmM5OWNlMzU1MzFhZjRiYmY4YjU1NzFlNmU2ODIwNDI2L3RhYmxlcmFuZ2U6Yzk5Y2UzNTUzMWFmNGJiZjhiNTU3MWU2ZTY4MjA0MjZfNC0xLTEtMS0w_ad6040c3-9817-4bcd-84be-d95761aa532c"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="i5c3a9b1a6df441e5a9afb1fb95744a11_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmM5OWNlMzU1MzFhZjRiYmY4YjU1NzFlNmU2ODIwNDI2L3RhYmxlcmFuZ2U6Yzk5Y2UzNTUzMWFmNGJiZjhiNTU3MWU2ZTY4MjA0MjZfNC0yLTEtMS0w_03104f2b-cc15-4c90-b1fb-96cad977f58a"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ifb790efbf3104ed5a1584f267bc880be_D20200101-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmM5OWNlMzU1MzFhZjRiYmY4YjU1NzFlNmU2ODIwNDI2L3RhYmxlcmFuZ2U6Yzk5Y2UzNTUzMWFmNGJiZjhiNTU3MWU2ZTY4MjA0MjZfNC00LTEtMS0w_2d014917-f0b7-4e60-ab69-9f3b18428688"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ice8d360a223b4625a45acbe73ffeb338_D20200101-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmM5OWNlMzU1MzFhZjRiYmY4YjU1NzFlNmU2ODIwNDI2L3RhYmxlcmFuZ2U6Yzk5Y2UzNTUzMWFmNGJiZjhiNTU3MWU2ZTY4MjA0MjZfNC01LTEtMS0w_cf84a022-480a-4753-a302-57d623e0537a"
      unitRef="shares">33443969</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ia1f3697c7c9d493ab587020886174d3c_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmM5OWNlMzU1MzFhZjRiYmY4YjU1NzFlNmU2ODIwNDI2L3RhYmxlcmFuZ2U6Yzk5Y2UzNTUzMWFmNGJiZjhiNTU3MWU2ZTY4MjA0MjZfNS0xLTEtMS0w_c7d0f083-6a74-4af2-8ae5-84dcfaaec33e"
      unitRef="shares">556122</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ic6b39557baaa4ffdb412ef8c018327ff_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmM5OWNlMzU1MzFhZjRiYmY4YjU1NzFlNmU2ODIwNDI2L3RhYmxlcmFuZ2U6Yzk5Y2UzNTUzMWFmNGJiZjhiNTU3MWU2ZTY4MjA0MjZfNS0yLTEtMS0w_62bc713e-2297-4840-bfb0-cebbe677f31a"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="ia2b04cdb1b984678aecb315fe58e12b6_D20200101-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmM5OWNlMzU1MzFhZjRiYmY4YjU1NzFlNmU2ODIwNDI2L3RhYmxlcmFuZ2U6Yzk5Y2UzNTUzMWFmNGJiZjhiNTU3MWU2ZTY4MjA0MjZfNS00LTEtMS0w_4c96c3fa-1955-43f9-9be8-68336ba076ef"
      unitRef="shares">0</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount
      contextRef="idff18fedc0274e088ab4f310ab10b95d_D20200101-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM182Ny9mcmFnOmM3MzhjZjcxMmU3YTRjZDliYWU4ZGQ3NTdjYzAyZTFkL3RhYmxlOmM5OWNlMzU1MzFhZjRiYmY4YjU1NzFlNmU2ODIwNDI2L3RhYmxlcmFuZ2U6Yzk5Y2UzNTUzMWFmNGJiZjhiNTU3MWU2ZTY4MjA0MjZfNS01LTEtMS0w_a199186b-b6d0-4953-9ca4-fd99f6949a37"
      unitRef="shares">34209597</us-gaap:AntidilutiveSecuritiesExcludedFromComputationOfEarningsPerShareAmount>
    <us-gaap:IncomeTaxDisclosureTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183MC9mcmFnOjFlZjExYWMwNWU0MDRiZGU4MWQ1MDY4ZjMzMjJkNjg1L3RleHRyZWdpb246MWVmMTFhYzA1ZTQwNGJkZTgxZDUwNjhmMzMyMmQ2ODVfMTM5MQ_7585c0e0-54b6-4998-b620-c4475b7349f9">Income Taxes &lt;div style="margin-bottom:9.5pt;text-indent: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 computes its provision for income taxes by applying the estimated annual effective tax rate to pretax income and adjusts the provision for discrete tax items recorded in the period.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 recorded a benefit of less than $0.1&#160;million and a provision for income taxes of $0.1 million for the three months ended June 30, 2021 and 2020, respectively, and a provision for income taxes of $1.9 million and $0.5 million for the six months ended June 30, 2021 and 2020, respectively. &lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 effective income tax rate was 11% for the six months ended June 30, 2021 and differs from the statutory federal rate of 21% due to deductions for equity awards and for foreign-sourced revenue, and tax benefit for federal and state research credits, partially offset by nondeductible stock-based compensation, and a higher tax rate in certain foreign countries where the Company operates. The effective income tax rate was 24% for the six months ended June 30, 2020. This differs from the statutory federal rate of 21% primarily due to non deductible stock-based compensation and foreign rate differential partially offset by federal and state research credits.&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent:18pt"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:120%"&gt;Realization of the Company&#x2019;s deferred tax assets is dependent primarily on the generation of future taxable income. In considering the need for a valuation allowance, the Company considers its historical, as well as future projected, taxable income along with other objectively verifiable evidence. Objectively verifiable evidence includes the Company&#x2019;s realization of tax attributes, assessment of tax credits, and utilization of net operating loss carryforwards during the year.&lt;/span&gt;&lt;/div&gt;</us-gaap:IncomeTaxDisclosureTextBlock>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="id836244134e847f8a847ee58b0bb7092_D20210401-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183MC9mcmFnOjFlZjExYWMwNWU0MDRiZGU4MWQ1MDY4ZjMzMjJkNjg1L3RleHRyZWdpb246MWVmMTFhYzA1ZTQwNGJkZTgxZDUwNjhmMzMyMmQ2ODVfMjE5OTAyMzI1OTk5MQ_fb3a8edf-4b1e-47ff-a843-83ac90d5ac52"
      unitRef="usd">-100000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183MC9mcmFnOjFlZjExYWMwNWU0MDRiZGU4MWQ1MDY4ZjMzMjJkNjg1L3RleHRyZWdpb246MWVmMTFhYzA1ZTQwNGJkZTgxZDUwNjhmMzMyMmQ2ODVfMTA5OTUxMTYzMTQ1MA_b8f95586-42f3-4c45-9b57-8f960f172b26"
      unitRef="usd">100000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183MC9mcmFnOjFlZjExYWMwNWU0MDRiZGU4MWQ1MDY4ZjMzMjJkNjg1L3RleHRyZWdpb246MWVmMTFhYzA1ZTQwNGJkZTgxZDUwNjhmMzMyMmQ2ODVfMTA5OTUxMTYzMjA1Mg_79e2437a-6293-4a08-a6bd-6c065e4905d6"
      unitRef="usd">1900000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:IncomeTaxExpenseBenefit
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-5"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183MC9mcmFnOjFlZjExYWMwNWU0MDRiZGU4MWQ1MDY4ZjMzMjJkNjg1L3RleHRyZWdpb246MWVmMTFhYzA1ZTQwNGJkZTgxZDUwNjhmMzMyMmQ2ODVfMTA5OTUxMTYzMjA2MA_0c7bf10b-1662-429e-ac4a-d50fde5a6e74"
      unitRef="usd">500000</us-gaap:IncomeTaxExpenseBenefit>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183MC9mcmFnOjFlZjExYWMwNWU0MDRiZGU4MWQ1MDY4ZjMzMjJkNjg1L3RleHRyZWdpb246MWVmMTFhYzA1ZTQwNGJkZTgxZDUwNjhmMzMyMmQ2ODVfMzU0_df1dc9a4-2b07-4529-a51f-b91b7a84d1a1"
      unitRef="number">0.11</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:EffectiveIncomeTaxRateContinuingOperations
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="2"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183MC9mcmFnOjFlZjExYWMwNWU0MDRiZGU4MWQ1MDY4ZjMzMjJkNjg1L3RleHRyZWdpb246MWVmMTFhYzA1ZTQwNGJkZTgxZDUwNjhmMzMyMmQ2ODVfMTA5OTUxMTYyOTgyOA_fb95d63b-723a-4fcd-a06d-02bcce523c55"
      unitRef="number">0.24</us-gaap:EffectiveIncomeTaxRateContinuingOperations>
    <us-gaap:SegmentReportingDisclosureTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RleHRyZWdpb246NmMwMDY5MGU4YmQxNDI2Yjg0ODA1NWUxZmY5NWU1ZWZfMjYx_5457d633-c028-44c6-bed7-cce73f5d22ec">Segment Information &lt;div style="margin-bottom:9.5pt;text-indent: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 represents 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-bottom:9.5pt;text-indent:18pt"&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:40.566%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.002%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.002%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.002%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.005%"/&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:100%"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/td&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:100%"&gt;Six Months Ended June 30,&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;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;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;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;30,076&#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,508&#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;57,484&#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;36,550&#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;14,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,755&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,529&#160;&lt;/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;4,142&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,679&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,337&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,620&#160;&lt;/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;995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;494&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,690&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,010&#160;&lt;/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;49,658&#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,361&#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;93,266&#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;54,709&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 long-lived assets, net by geographic area are summarized as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:4pt;padding-left:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.358%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:69.867%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.093%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.445%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.095%"/&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;June 30,&lt;br/&gt;2021&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;December 31, 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:100%"&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,342&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,580&#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:100%"&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:100%"&gt;6,259&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,464&#160;&lt;/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:100%"&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:100%"&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:100%"&gt;43,601&#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:100%"&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:100%"&gt;30,044&#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="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RleHRyZWdpb246NmMwMDY5MGU4YmQxNDI2Yjg0ODA1NWUxZmY5NWU1ZWZfMjYy_edd18939-046e-4c15-bcca-9a5705360f97">&lt;div style="margin-bottom:9.5pt;text-indent: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 represents 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-bottom:9.5pt;text-indent:18pt"&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:40.566%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.002%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.002%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.002%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.441%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.005%"/&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:100%"&gt;Three Months Ended June 30,&lt;/span&gt;&lt;/td&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:100%"&gt;Six Months Ended June 30,&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;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;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;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;30,076&#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,508&#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;57,484&#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;36,550&#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;14,445&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,680&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,755&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,529&#160;&lt;/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;4,142&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,679&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,337&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#cceeff;padding:2px 0 2px 1pt;text-align:right;vertical-align: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,620&#160;&lt;/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;995&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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;494&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,690&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;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,010&#160;&lt;/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;49,658&#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,361&#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;93,266&#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;54,709&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-bottom:3pt double #000;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;/tr&gt;&lt;/table&gt;&lt;/div&gt;&lt;div style="margin-bottom:9.5pt;text-indent: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 long-lived assets, net by geographic area are summarized as follows (in thousands):&lt;/span&gt;&lt;/div&gt;&lt;div style="margin-bottom:4pt;padding-left:18pt"&gt;&lt;table style="border-collapse:collapse;display:inline-table;margin-bottom:5pt;vertical-align:text-bottom;width:99.358%"&gt;&lt;tr&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:69.867%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.093%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:0.445%"/&gt;&lt;td style="width:0.1%"/&gt;&lt;td style="width:1.0%"/&gt;&lt;td style="width:13.095%"/&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;June 30,&lt;br/&gt;2021&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;December 31, 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:100%"&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:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;37,342&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#cceeff;padding:0 1pt"/&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0 2px 1pt;text-align:left;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;$&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#cceeff;border-top:1pt solid #000;padding:2px 0;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;24,580&#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:100%"&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:100%"&gt;6,259&#160;&lt;/span&gt;&lt;/td&gt;&lt;td style="background-color:#ffffff;padding:2px 1pt 2px 0;text-align:right;vertical-align:bottom"/&gt;&lt;td colspan="3" style="background-color:#ffffff;padding:0 1pt"/&gt;&lt;td colspan="2" style="background-color:#ffffff;padding:2px 0 2px 1pt;text-align:right;vertical-align:bottom"&gt;&lt;span style="color:#000000;font-family:'Times New Roman',sans-serif;font-size:10pt;font-weight:400;line-height:100%"&gt;5,464&#160;&lt;/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:100%"&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:100%"&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:100%"&gt;43,601&#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:100%"&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:100%"&gt;30,044&#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="i0e4e26c54eeb48e888fb886a4590a033_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfMi0xLTEtMS0w_a3200788-1fc2-4986-8949-e4a6808877ef"
      unitRef="usd">30076000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9e2df87c0b2f4d6b9e045f6280c302cd_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfMi0zLTEtMS0w_00f41ecf-f504-422c-91d9-0b6be5fa8b50"
      unitRef="usd">17508000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ic4a2ff7c2f164233950e6000e7841a8c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfMi01LTEtMS03OTI_bfe36c6a-16f4-4438-8773-ec973e115ba7"
      unitRef="usd">57484000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ie57b792b603d462ca1c5720946aff34a_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfMi03LTEtMS0yNjQz_a43348f1-138a-4311-ab0b-f2c2c407cb65"
      unitRef="usd">36550000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ie9453fc6766d4519b643a7d8dd5375ba_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfMy0xLTEtMS0w_0a7e8302-1579-4c84-ae7b-ef35be46127e"
      unitRef="usd">14445000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ic5bca3ca905e498e8ad9d466cc7bbe48_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfMy0zLTEtMS0w_7760e93f-ae78-43fd-9b5c-04fbe0c20ef9"
      unitRef="usd">5680000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2031c51bd5cf48dbab428c29b67faad0_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfMy01LTEtMS03OTI_270f691d-337e-48ee-896b-b62c42e566c6"
      unitRef="usd">25755000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i398d501303c14d0d81a309804eee0fbf_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfMy03LTEtMS0yNjQz_78901c6d-a488-4fb8-bd63-780cf38d32ca"
      unitRef="usd">11529000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9092d0f3525946008967bf211d401a87_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfNC0xLTEtMS0w_3de3618d-2a2c-4d42-a8f2-a46baf6fc07b"
      unitRef="usd">4142000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i76a93483fdc848fc95afe3c4ea65e424_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfNC0zLTEtMS0w_0245ae35-c534-4710-ad1b-bc1ca5d90334"
      unitRef="usd">2679000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i58e9cf97a8eb44a1b640a4f1415834a7_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfNC01LTEtMS03OTI_8975a20b-1f3c-4a86-b757-8eef52acef37"
      unitRef="usd">8337000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="ie42c0ef276c84a24a45efe5cee6fb156_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfNC03LTEtMS0yNjQz_6d909728-40cf-4606-883c-1a984b3c08e2"
      unitRef="usd">5620000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i5bbaa269e598400f924e68c4f1fd098f_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfNS0xLTEtMS0w_7b9bd4e4-75ab-4feb-a055-18148f3021c2"
      unitRef="usd">995000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i7d38e065585e4332ac6f67f9d464fb7e_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfNS0zLTEtMS0w_9e95e908-2eaa-4eb4-b23a-4cccf91a4070"
      unitRef="usd">494000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i9d17f36f4b994695a63fc97ad85c0334_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfNS01LTEtMS03OTI_a362db27-c7f5-455e-8a75-81a10f4047fd"
      unitRef="usd">1690000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i0d8a56719a784b348e32f35e629575c2_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfNS03LTEtMS0yNjQz_e2215550-6075-432c-8d83-aefbbdea2a9d"
      unitRef="usd">1010000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i34699e2ba0f549859747149f8c84ee3e_D20210401-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfNi0xLTEtMS0w_2b16e46c-adff-4ba2-9ea0-fb9c3c6d3488"
      unitRef="usd">49658000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="i2ddd03b193ed482ba1ab7c5b2e32ea1d_D20200401-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfNi0zLTEtMS0w_2a761917-2874-4539-aa2b-72acd5f41620"
      unitRef="usd">26361000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfNi01LTEtMS0yNjQz_125eb66e-9643-4413-9a94-9364711a5b8a"
      unitRef="usd">93266000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOmE2NGUzMzVhOTBhMDQ4M2ZiYzE3ZDU1ODNlM2Y2OGMyL3RhYmxlcmFuZ2U6YTY0ZTMzNWE5MGEwNDgzZmJjMTdkNTU4M2UzZjY4YzJfNi03LTEtMS0yNjQz_0b5d3d17-c2c9-4d9e-a4d8-02ca7aec6aa3"
      unitRef="usd">54709000</us-gaap:RevenueFromContractWithCustomerExcludingAssessedTax>
    <us-gaap:NoncurrentAssets
      contextRef="i3fdab62c600a4529a02f18a3fca4b832_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOjNjMTIwYzE5ZDlhODRiYjU5NDJlYTYyMDM1ZTlhYjZhL3RhYmxlcmFuZ2U6M2MxMjBjMTlkOWE4NGJiNTk0MmVhNjIwMzVlOWFiNmFfMS0xLTEtMS0w_f31693b9-9e86-4e4d-a5db-ce3138b159c7"
      unitRef="usd">37342000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="i60e9881f50834e40bc1337361e187c19_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOjNjMTIwYzE5ZDlhODRiYjU5NDJlYTYyMDM1ZTlhYjZhL3RhYmxlcmFuZ2U6M2MxMjBjMTlkOWE4NGJiNTk0MmVhNjIwMzVlOWFiNmFfMS0zLTEtMS0w_ae51c173-e41d-428d-b33d-c339b9ec3073"
      unitRef="usd">24580000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="if8cdfa05f44947da8036bff34492a275_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOjNjMTIwYzE5ZDlhODRiYjU5NDJlYTYyMDM1ZTlhYjZhL3RhYmxlcmFuZ2U6M2MxMjBjMTlkOWE4NGJiNTk0MmVhNjIwMzVlOWFiNmFfMi0xLTEtMS0w_4fc85820-6bcb-4f16-b7e7-c1c07da168db"
      unitRef="usd">6259000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="ie630db62be30423c8d9ffc1e06b3b2af_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOjNjMTIwYzE5ZDlhODRiYjU5NDJlYTYyMDM1ZTlhYjZhL3RhYmxlcmFuZ2U6M2MxMjBjMTlkOWE4NGJiNTk0MmVhNjIwMzVlOWFiNmFfMi0zLTEtMS0w_573005ec-aaf8-480f-bd74-03b4789d3cd1"
      unitRef="usd">5464000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="i53931419e3844ae89bb7d153267cb9a9_I20210630"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOjNjMTIwYzE5ZDlhODRiYjU5NDJlYTYyMDM1ZTlhYjZhL3RhYmxlcmFuZ2U6M2MxMjBjMTlkOWE4NGJiNTk0MmVhNjIwMzVlOWFiNmFfMy0xLTEtMS0w_bb5c970b-e2a7-498e-8fab-26a1149f4c84"
      unitRef="usd">43601000</us-gaap:NoncurrentAssets>
    <us-gaap:NoncurrentAssets
      contextRef="if1330c05b28f4f0aa36a1e480c21e51e_I20201231"
      decimals="-3"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183My9mcmFnOjZjMDA2OTBlOGJkMTQyNmI4NDgwNTVlMWZmOTVlNWVmL3RhYmxlOjNjMTIwYzE5ZDlhODRiYjU5NDJlYTYyMDM1ZTlhYjZhL3RhYmxlcmFuZ2U6M2MxMjBjMTlkOWE4NGJiNTk0MmVhNjIwMzVlOWFiNmFfMy0zLTEtMS0w_d664b740-8e1e-451e-979c-9aaad35b367a"
      unitRef="usd">30044000</us-gaap:NoncurrentAssets>
    <us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183Ni9mcmFnOmJmNDQ3NDQzMTRhNTQxNWNiYWVlZWQ0MDk4NWYxNWE3L3RleHRyZWdpb246YmY0NDc0NDMxNGE1NDE1Y2JhZWVlZDQwOTg1ZjE1YTdfNTE2_4043fbef-1a79-4bf5-86f8-41a7938d4fe1">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 no matching contribution to the 401(k) Plan for the six months ended June 30, 2021 and 2020, respectively.</us-gaap:PensionAndOtherPostretirementBenefitsDisclosureTextBlock>
    <us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183Ni9mcmFnOmJmNDQ3NDQzMTRhNTQxNWNiYWVlZWQ0MDk4NWYxNWE3L3RleHRyZWdpb246YmY0NDc0NDMxNGE1NDE1Y2JhZWVlZDQwOTg1ZjE1YTdfMjYx_21ae6883-4f95-4cf8-8b48-34c40b9c4afb"
      unitRef="number">1</us-gaap:DefinedContributionPlanMaximumAnnualContributionsPerEmployeePercent>
    <us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount
      contextRef="idc633050a5b04f168116e2b707f03b0c_D20200101-20200630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183Ni9mcmFnOmJmNDQ3NDQzMTRhNTQxNWNiYWVlZWQ0MDk4NWYxNWE3L3RleHRyZWdpb246YmY0NDc0NDMxNGE1NDE1Y2JhZWVlZDQwOTg1ZjE1YTdfNDIy_4191e1f1-a410-4be6-af9d-bbf2cb4b96f9"
      unitRef="usd">0</us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount>
    <us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount
      contextRef="if4eddc57f03a40378aa8f8202fd3d67c_D20210101-20210630"
      decimals="INF"
      id="id3VybDovL2RvY3MudjEvZG9jOjg4ZmY3NzMzMDE0NDRiMzRhZjA1ZDU4NGZhOTMyMWIzL3NlYzo4OGZmNzczMzAxNDQ0YjM0YWYwNWQ1ODRmYTkzMjFiM183Ni9mcmFnOmJmNDQ3NDQzMTRhNTQxNWNiYWVlZWQ0MDk4NWYxNWE3L3RleHRyZWdpb246YmY0NDc0NDMxNGE1NDE1Y2JhZWVlZDQwOTg1ZjE1YTdfNDIy_7688f2a8-2c0c-46e4-b94d-b6d1081e3ec3"
      unitRef="usd">0</us-gaap:DefinedContributionPlanEmployerDiscretionaryContributionAmount>
</xbrl>
